kazu22002の技術覚書

PHPerでありAWS好きの、うさぎ年のエンジニアの日々

docker-composeでnginxが「exited with code 0」で終了するときの対処

docker-composeでWEBサーバーを立てている最中に、webサーバーのnginx用のコンテナだけすぐに終了する現象が発生しました。

「docker-compose up」で起動してログを見ていると、「lamp_web_1 exited with code 0」と終了しているのが確認でき、localhostにアクセスしても動作していないのを確認しました。

サンプルの方は問題なく動作するのに、自分で作って見たDockerfileが動作していない状態でかなり困りました。

とりあえず対処できた内容です。

ttyオプション

ttyオプションをつけることで、起動しつづけるみたいです。

[参考サイト]

inamuu.com

サンプルの方はこのオプションがないように見えるので、なぜ動いているのかわかっていないのですが、ttyオプションをつけたら動いたので、とりあえずこれで進めてみようと思います。

設定のエラーがあるから終了状態になるのか、コンテナ同士の連携がうまくいっていないのかまだわからないところが多いです。

[※追記] ほかのプロジェクトでttyをつけてもすぐ落ちました。なにか設定が悪いほうが濃厚な気がします。

[※追記] Dockerfileに

CMD ["nginx"]

があるとすぐに落ちていた。runしたときに、標準に追加されるぐらいのイメージでしたが、ほかにも意味があるのかな。

とりあえず解決です。