2016-07-28 120 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将继续重启你的容器,直到它继续运行。