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 は、そのプロセスがサービスとしてバックグラウンドではなくフォアグラウンドで実行される1 つのプロセス環境であることを忘れないでください。