现在,我们的 Jenkins 代理为每个 Rails 项目生成一个 docker-compose.yml,然后运行 docker-compose up。 docker-compose.yml 有一个主“web”容器,其中包含 rbenv 和所有其他 Rails 依赖项。它链接到包含测试 Postgres DB 的数据库容器。
当我们需要实际运行测试并生成退出代码时,问题就出现了。我们的 CI 服务器仅在测试脚本返回 exit 0 时才会部署,但 docker-compose 始终返回 0,即使容器命令之一失败也是如此。
另一个问题是数据库容器无限期地运行,即使在 Web 容器完成运行测试之后也是如此,因此docker-compose up
永远不会回来。
有没有办法使用 docker-compose 来完成这个过程?我们需要能够运行容器,但在 Web 容器完成后退出并返回其退出代码。现在,我们只能手动使用 docker 启动 DB 容器并使用 --link 选项运行 Web 容器。
自版本以来1.12.0
,您可以使用--exit-code-from
option.
From 文档 https://docs.docker.com/compose/reference/up/:
--退出代码-来自服务
返回所选服务容器的退出代码。意味着 --abort-on-container-exit。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)