Как запустить сервисы на образе Docker?

Я создал Dockerfile для изображения для запуска PHP7 на FPM + Nginx, но я не могу получить образ для правильного запуска служб.

Как именно это должно быть сделано?

Вот часть, где я делаю это в настоящее время:

CMD service php7-fpm start; \
service php7-fpm status; \
service nginx start; \
service nginx status

0

Решение

При управлении несколькими сервисами вы захотите использовать супервизор.

В вашем Dockerfile.

Additional commands...
RUN apt-get update && apt-get install -y supervisor
ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf
Additional commands...
CMD ["/bin/supervisord", "-c /etc/supervisor/conf.d/supervisord.conf"]

supervisord.conf

[supervisord]
nodaemon=true

[program:php7]
command=<command to start php7>
autostart=true
autorestart=true
<repeat for additional services>...

Это гарантирует, что контейнер не выйдет после того, как все будет запущено. Помните, что Докер предполагаемый быть средой с одним процессом, причем этот процесс выполняется на переднем плане, а не в качестве службы.

0

Другие решения

вам нужен менеджер процессов, такой как supervisor, s6, daemontools или любой другой

см. документ для руководителя, например

https://docs.docker.com/articles/using_supervisord/

2

По вопросам рекламы [email protected]