我正在通过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已准备就绪。
我要做的是保留旧容器的运行状态,在构建和启动新容器的过程中,等待一段时间以准备好服务器应用程序,然后以某种方式替换它们。因此,整个操作对于用户来说将是无缝的。
我该怎么办?
答案 0 :(得分:1)
docker-compose无法实现。但是,是的,可以使用流行的编排工具 Kubernetes 之类的容器编排工具。
在Kubernetes官方网站上:
自动部署和回滚
Kubernetes逐步推出对您的应用程序或其应用程序的更改 配置,同时监视应用程序运行状况以确保配置 不会同时杀死所有实例。如果有事 错误的,Kubernetes将为您回滚更改。利用 不断发展的部署解决方案生态系统。
自我修复
重新启动失败的容器,替换并重新计划容器 当节点死亡时,杀死不响应您的容器 用户定义的运行状况检查,并且直到将其发布给客户端之前 他们已经准备好服务了。