我已经为在 FPM + Nginx 上运行 PHP7 的图像创建了Dockerfile,但我无法让图像正确启动服务。
这应该怎么做?
这是我目前正在做的部分:
CMD service php7-fpm start; \
service php7-fpm status; \
service nginx start; \
service nginx status
我已经为在 FPM + Nginx 上运行 PHP7 的图像创建了Dockerfile,但我无法让图像正确启动服务。
这应该怎么做?
这是我目前正在做的部分:
CMD service php7-fpm start; \
service php7-fpm status; \
service nginx start; \
service nginx status
在管理多个服务时,您需要使用 supervisord。
在你的 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>...
这将确保容器在一切启动后不会退出。请记住,Docker应该是一个单进程环境,该进程在前台运行,而不是作为服务在后台运行。