
そのイメージに基づいて、cron を使用して新しいイメージを作成していますphp:7.3-apache-buster
。
イメージのビルドは問題なく進みます。コンテナも Up ステータスで作成されます。ただし、ブラウザに入力してもhttp://localhost:8082
Apache ページは表示されません。Apache サービスはphp:7.3-apache-buster
イメージから継承されます。
私の Dockerfile の最後の行は ですCMD cron && tail -f /var/log/cron.log
。この行が問題を引き起こしていると思います。
コマンドでコンテナに入りdocker exec -it cont-mysite-01 /bin/bash
、 コマンドを実行するとservice apache2 start
、Apache は正常に起動します。
何が理解できないのでしょうか?
ベースイメージの Apache と新しいイメージの Cron が連携して動作するイメージを構築するにはどうすればよいでしょうか?
私の参考文献:
答え1
私は次のように問題を解決しました:
CMD cron && tail -f /var/log/cron.log
Dockerfile から行を削除しました。
次に、行を追加しましたRUN sed -i 's/^exec /service cron start\n\nexec /' /usr/local/bin/apache2-foreground
。
イメージを使用してコンテナを作成した後、Apache2 と Cron を確認するコマンドを実行します。
docker exec -it cont-mysite-01 service apache2 status
docker exec -it cont-mysite-01 service cron status
役に立ったリンク: