Требования к Облачному ПО в Облачной ОС
Список требований
- Облачное ПО должно быть собрано в докер образ.
- По возможности использовать alpine образы.
- Данные контейнера должны собираться в папку /data.
- Настройки контейнера должны передаваться через переменные среды Environment.
- По возможности используйте стандарт The Twelve-Factor App
- Точка входа должна быть /root/run.sh
- Использовать supervisord
-
Содержимое /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"
-
Папка /root/run.d/ должна содержать .sh скрипты, которые выполняются при запуске контейнера.
00 - инициализация переменных контейнера
10 - настройка пользователей контейнера, файлов /etc/passwd, /etc/group
20 - инициализация папок контейнера
30 - отключение, включение supervisor конфигов, настройка крона
50 - установка и настройка приложения
99 - прочее - Контейнер должен содержать программы mc, nano, ping, wget, netstat, nslookup.
- Для админки должен использоваться 81 порт, <type>admin</type> в XML файле.