Как правильно развернуть контейнеры Docker с супервизором в Jelastic
У меня есть простой образ Docker, построенный поверх Ubuntu с фиктивным приложением PHP Laravel. Я использую supervisord для запуска nginx и php-fpm. Пока все хорошо, все отлично работает на моей локальной машине или в любом месте, где существует исполняемый файл Docker.
Я пытаюсь запустить тот же образ в среде Jelastic, но получаю ошибки супервизора:
2017-01-21 14:34:30,283 INFO exited: cron (exit status 1; not expected)
2017-01-21 14:34:30,333 INFO exited: fpm (exit status 78; not expected)
2017-01-21 14:34:32,336 INFO spawned: 'cron' with pid 1216
2017-01-21 14:34:32,338 INFO spawned: 'fpm' with pid 1217
2017-01-21 14:34:32,341 INFO exited: cron (exit status 1; not expected)
2017-01-21 14:34:32,386 INFO exited: fpm (exit status 78; not expected)
Я связался со службой поддержки, и они сказали мне, что cron и php-fpm уже запущены из-за systemd, поэтому они вошли в мой узел, что-то исправили, и теперь все работает.
Мне интересно, как это согласуется с лозунгом "Поддержка Native Docker™©" повсюду в документации.
В любом случае, я установил новый пример приложения для расследования службы поддержки (изображение - https://hub.docker.com/r/rozhok/jelastic-laravel-docker/ sources - https://github.com/rozhok/jelastic-laravel-docker), попытался развернуть его и вдруг все заработало нормально.
Итак, мои вопросы:
Как избежать супервизора и системных столкновений при развертывании в Jelastic. Помните, я хочу иметь одно и то же изображение для всех моих сред, и я не хочу готовить "специальные" изображения для Jelastic.
Есть ли какие-то другие предупреждения, о которых мы должны знать? Возможно, поддержка Docker должна быть описана немного подробнее.
1 ответ
Кажется, что вам нужно добавить только одну дополнительную строку в ваш Dockerfile:RUN systemctl отключить php-fpm, который отключит php-fpm от порождения вашего процесса systemd, ваш процесс будет определенно запущен супервизором, и это сделает образ быть совместимым как с Jelastic, так и с вашим док-хостом, работающим на вашем локальном компьютере.