2017-01-21 14 views
1

У меня есть простой образ Docker, построенный над ubuntu с использованием фиктивного приложения laravel php. Я использую supervisord для запуска nginx и php-fpm. Пока все хорошо, все работает отлично на моей локальной машине или в любом месте, где существует исполняемый файл докера.Как правильно развернуть контейнеры Docker с supervisord для Jelastic

Я пытаюсь запустить то же образ в среде Jelastic, но я получаю supervisord ошибки:

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) 

Я связался со службой поддержки, и они сказали мне, что хроны и PHP-FPM уже работают, потому что systemd, поэтому они вошли в мой узел, исправили что-то, и теперь все работает.

Мне интересно, как это согласовывается с тегом «Native Docker ™ © support» ™ везде в документации.

В любом случае, я установил новое примерное приложение для исследования службы поддержки (изображение - https://hub.docker.com/r/rozhok/jelastic-laravel-docker/ источников - https://github.com/rozhok/jelastic-laravel-docker), попытался развернуть его, и все было нормально.

Так мои вопросы это:

  1. Как избежать supervisord и Systemd столкновений при развертывании Jelastic. Помните, я хочу иметь один и тот же образ для всех своих окружений, и я не хочу готовить «специальные» изображения для Jelastic.

  2. Есть ли какие-либо другие оговорки, о которых мы должны знать? Возможно, поддержка Docker должна быть описана немного больше.

ответ

2

кажется, что вам нужно добавить только одну дополнительную строку в Dockerfile: RUN systemctl отключить PHP-FPM , который будет отключить PHP-FPM от того порожден от вашего Systemd процесса, ваш процесс будет определенно начатый супервизором, и это сделает изображение совместимым как для Jelastic, так и для вашего узла докеров, запущенного на вашем локальном компьютере.