保留旧的docker-compose容器,直到下一个容器准备好为止

时间:2018-07-19 12:16:17

标签: docker docker-compose continuous-deployment

我正在通过docker-compose部署我的应用程序,该服务具有2个服务:服务器应用程序和nginx。

因此在CI中,我创建了以下说明脚本:

docker-compose build # create new containers
docker-compose down # down old containers
docker-compose up -d # up new containers

但是服务器应用程序容器具有其自身的启动时间,因此在应用程序启动后,我立即看到502页,因为服务器应用程序尚未准备好接收呼叫,但nginx已准备就绪。

我要做的是保留旧容器的运行状态,在构建和启动新容器的过程中,等待一段时间以准备好服务器应用程序,然后以某种方式替换它们。因此,整个操作对于用户来说将是无缝的。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

docker-compose无法实现。但是,是的,可以使用流行的编排工具 Kubernetes 之类的容器编排工具。

Kubernetes官方网站上:

  

自动部署和回滚

     

Kubernetes逐步推出对您的应用程序或其应用程序的更改   配置,同时监视应用程序运行状况以确保配置   不会同时杀死所有实例。如果有事   错误的,Kubernetes将为您回滚更改。利用   不断发展的部署解决方案生态系统。

     

自我修复

     

重新启动失败的容器,替换并重新计划容器   当节点死亡时,杀死不响应您的容器   用户定义的运行状况检查,并且直到将其发布给客户端之前   他们已经准备好服务了。