2016-07-28 26 views
0

是否可以根據單獨的HTTP服務的可用性來推遲容器的啓動。例如,只有在端口8080正在運行時才啓動容器?Docker撰寫依賴關係

+0

Docker 1.12引入了[HEALTHCHECK](https://docs.docker.com/engine/reference/builder/#/healthcheck),但是缺少的部分是'docker-compose'需要知道它並開始下一步當健康檢查通過時提供服務。有一個可能需要檢查的問題:https://github.com/docker/compose/issues/374 – huygn

回答

1

這種應用程序級服務檢查在docker-compose中不可用。您需要在Docker鏡像中實現必要的邏輯。

舉例來說,如果你有一些依賴於Web服務,你可以有你的CMD運行一個腳本,它是這樣的:

while ! curl -sf http://servicehost:8080/; do 
    sleep 1 
done 

exec myprogram 

另一種選擇是設置的always重啓政策上的容器,並且如果目標服務不可用,它們會失敗。 Docker將繼續重啓你的容器,直到它繼續運行。