Apache サービスに悪影響を与えずに、新しいイメージで cron 起動を構成するにはどうすればよいですか?

Apache サービスに悪影響を与えずに、新しいイメージで cron 起動を構成するにはどうすればよいですか?

そのイメージに基づいて、cron を使用して新しいイメージを作成していますphp:7.3-apache-buster

イメージのビルドは問題なく進みます。コンテナも Up ステータスで作成されます。ただし、ブラウザに入力してもhttp://localhost:8082Apache ページは表示されません。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 が連携して動作するイメージを構築するにはどうすればよいでしょうか?

私の参考文献:

https://github.com/Ekito/docker-cron/blob/master/Dockerfile

参考:

答え1

私は次のように問題を解決しました:

CMD cron && tail -f /var/log/cron.logDockerfile から行を削除しました。

次に、行を追加しました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

役に立ったリンク:

http://www.idein.it/joomla/14-docker-php-apache-crontab 付き

関連情報