0

我已经为在 FPM + Nginx 上运行 PHP7 的图像创建了Dockerfile,但我无法让图像正确启动服务。

这应该怎么做?

这是我目前正在做的部分:

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

2 回答 2

2

您需要一个进程管理器,例如主管、s6、daemontools 或任何其他

例如,查看主管的文档

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

于 2015-08-26T17:03:21.887 回答
0

在管理多个服务时,您需要使用 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应该是一个单进程环境,该进程在前台运行,而不是作为服务在后台运行。

于 2015-08-26T17:23:49.423 回答