gpt4 book ai didi

docker - 将 docker-compose 与 CI 结合使用 - 如何处理退出代码和守护程序链接容器?

转载 作者:IT老高 更新时间:2023-10-28 12:33:49 26 4
gpt4 key购买 nike

现在,我们的 Jenkins 代理为我们的每个 Rails 项目生成一个 docker-compose.yml,然后运行 ​​docker-compose up。 docker-compose.yml 有一个主“web”容器,其中包含 rbenv 和我们所有其他 Rails 依赖项。它链接到包含测试 Postgres 数据库的数据库容器。

当我们需要实际运行测试并生成退出代码时,问题就来了。只有当测试脚本返回 exit 0 时,我们的 CI 服务器才会部署,但 docker-compose 始终返回 0,即使其中一个容器命令失败。

另一个问题是 DB 容器会无限期地运行,即使在 Web 容器运行完测试之后也是如此,所以 docker-compose up 永远不会返回。

有没有一种方法可以在这个过程中使用 docker-compose?我们需要能够运行容器,但在 Web 容器完成后退出并返回它的退出代码。现在我们只能手动使用 docker 来启动 DB 容器并使用 --link 选项运行 Web 容器。

最佳答案

1.12.0版本开始,可以使用--exit-code-from选项。

来自 documentation :

--exit-code-from SERVICE

Return the exit code of the selected service container. Implies --abort-on-container-exit.

关于docker - 将 docker-compose 与 CI 结合使用 - 如何处理退出代码和守护程序链接容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29568352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com