0
是否可以根據單獨的HTTP服務的可用性來推遲容器的啓動。例如,只有在端口8080正在運行時才啓動容器?Docker撰寫依賴關係
是否可以根據單獨的HTTP服務的可用性來推遲容器的啓動。例如,只有在端口8080正在運行時才啓動容器?Docker撰寫依賴關係
這種應用程序級服務檢查在docker-compose
中不可用。您需要在Docker鏡像中實現必要的邏輯。
舉例來說,如果你有一些依賴於Web服務,你可以有你的CMD
運行一個腳本,它是這樣的:
while ! curl -sf http://servicehost:8080/; do
sleep 1
done
exec myprogram
另一種選擇是設置的always
重啓政策上的容器,並且如果目標服務不可用,它們會失敗。 Docker將繼續重啓你的容器,直到它繼續運行。
Docker 1.12引入了[HEALTHCHECK](https://docs.docker.com/engine/reference/builder/#/healthcheck),但是缺少的部分是'docker-compose'需要知道它並開始下一步當健康檢查通過時提供服務。有一個可能需要檢查的問題:https://github.com/docker/compose/issues/374 – huygn