【问题标题】:Preserve old docker-compose containers untill next are ready保留旧的 docker-compose 容器,直到下一个准备好
【发布时间】:2018-07-19 23:34:59
【问题描述】:

我正在通过 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已经准备好了。

我想做的是保持旧容器运行,在构建和构建新容器期间,等待一段时间让服务器应用程序准备好,然后以某种方式替换它们。所以整个操作对用户来说应该是无缝的。

我该怎么做?

【问题讨论】:

标签: docker docker-compose continuous-deployment


【解决方案1】:

使用 docker-compose 是不可能的。但是,是的,可以使用容器编排工具,如流行的编排工具 Kubernetes

来自Kubernetes官网:

自动推出和回滚

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

自我修复

重启失败的容器,替换和重新调度容器 当节点死亡时,杀死不响应你的容器 用户定义的健康检查,直到 他们已经准备好上菜了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 2017-07-22
    相关资源
    最近更新 更多