Я создал Dockerfile для изображения для запуска PHP7 на FPM + Nginx, но я не могу получить образ для правильного запуска служб.
Как именно это должно быть сделано?
Вот часть, где я делаю это в настоящее время:
CMD service php7-fpm start; \
service php7-fpm status; \
service nginx start; \
service nginx status
При управлении несколькими сервисами вы захотите использовать супервизор.
В вашем 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>...
Это гарантирует, что контейнер не выйдет после того, как все будет запущено. Помните, что Докер предполагаемый быть средой с одним процессом, причем этот процесс выполняется на переднем плане, а не в качестве службы.
вам нужен менеджер процессов, такой как supervisor, s6, daemontools или любой другой
см. документ для руководителя, например