Требования к Облачному ПО в Облачной ОС

Список требований

  1. Облачное ПО должно быть собрано в докер образ.
  2. По возможности использовать alpine образы.
  3. Данные контейнера должны собираться в папку /data.
  4. Настройки контейнера должны передаваться через переменные среды Environment.
  5. По возможности используйте стандарт The Twelve-Factor App
  6. Точка входа должна быть /root/run.sh
  7. Использовать supervisord
  8. Содержимое /root/run.sh
    #!/bin/bash
    
    export EDITOR=nano
    
    # Run scripts
    if [ -d /root/run.d ]; then
      for i in /root/run.d/*.sh; do
        if [ -f $i ]; then
          . $i
        fi
      done
      unset i
    fi
    
    # Run supervisor
    trap 'kill -TERM $PID; wait $PID' SIGHUP SIGINT SIGQUIT SIGTERM
    rm -f /var/run/supervisor/supervisor.sock
    /usr/bin/supervisord -c /etc/supervisord.conf -n &
    PID=$!
    wait $PID
    wait $PID
    EXIT_STATUS=$?
    sleep 2
    echo "Shutdown container"
  9. Папка /root/run.d/ должна содержать .sh скрипты, которые выполняются при запуске контейнера.
    00 - инициализация переменных контейнера
    10 - настройка пользователей контейнера, файлов /etc/passwd, /etc/group
    20 - инициализация папок контейнера
    30 - отключение, включение supervisor конфигов, настройка крона
    50 - установка и настройка приложения
    99 - прочее
  10. Контейнер должен содержать программы mc, nano, ping, wget, netstat, nslookup.
  11. Для админки должен использоваться 81 порт, <type>admin</type> в XML файле.