質問: Nginxとワードプレスの勉強に1つのコンテナでワードプレス環境を作ってみようと 以下のリポジトリのようなものを作っています。 色々と書いてみて実行していたのですが、とりあえず必要なソフト等をインストール したところでdocker-compose後、docker ps -aするとなぜかSTATUSがRestartingとなってしまいます。 (UPとなると思っていました) STATUSがUPになるためにはdocker-compose.ymlまたはDockerfileになにかしら記載が必要 なのでしょうか? *Dockerでまとめる場合、nginx, wordpress, mysqlとservice部を分けて書くのが通常 と言うのはわかりますが、自分のサーバと似たような環境を作ろうと1つのコンテナで作ろうとしています
回答: entrypoint.shでいろいろコメントアウトされて、試された形跡がありますが、すべてのデーモンをバックグラウンドで起動してしまうと、それらが起動中であってもentrypoint.shが最後までいくと、コンテナが終了しています。 コンテナがが終了すると、docker-compose.ymlで`restart: always`と書かれているため、コンテナはrestartします。 しかし、restartしてもすぐ終了するので、restart→終了→restart→終了→... を延々と繰り返しています。 これはシステムに負荷がかかる状況なのでよろしくないです。(テスト環境ではrestart: alwaysはやめたほうがいいです) 瞬間的にはupになっているタイミングもあると思いますが、繰り返し中の大部分の時間はrestartの処理中なので、docker psするとRestartingと表示されるのでしょう。 entrypoint.shの中で、最後のひとつはフォアグラウンドで実行させないといけないです。 今回だと、mysqldをデーモンとして起動して、nginxをフォアで動かすことになるのでしょうか。 もしくは、entrypoint.shで頑張る代わりに、supervisor(supervisord, s6-overlay, runit等)を使うのもいいかもしれません。