
我正在使用基於該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 協同工作的映像?
我的參考資料:
答案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