如何在新映像上設定 cron 啟動而不損害 Apache 服務?

如何在新映像上設定 cron 啟動而不損害 Apache 服務?

我正在使用基於該php:7.3-apache-buster圖像的 cron 創建一個新圖像。

影像的建置順利進行。該容器也已創建,狀態為 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 協同工作的映像?

我的參考資料:

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

https://hub.docker.com/_/php

答案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

對我有幫助的連結:

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

相關內容