gpt4 book ai didi

docker - 如何阻止 TeamCity 每次都重新构建 docker 依赖项?

转载 作者:行者123 更新时间:2023-12-02 17:56:02 27 4
gpt4 key购买 nike

我有一个 TeamCity 构建项目,它使用十几个 Docker 容器的构建版本来参数化 docker-compose.yml 模板,因此为了从每个容器中获取 build_counter,我将它们设置为 docker-compose 构建作业中的快照依赖项.每个容器的 Dockerfile 和其他文件都在它们自己的 BitBucket 存储库中,并且它们具有相应文件的触发器。在 docker-compose 构建中的快照依赖项中,我将它们设置为“如果有合适的构建,则不运行新构建”但它仍然尝试运行所有依赖构建,即使它们各自没有任何更改 repo 。

这使得应该非常简单和快速的构建成为一个非常长的构建。并且很多时候,其中一个依赖构建会因“无法收集更改:连接被拒绝”而失败,我怀疑这与 TC 试图同时访问所有这些不同的存储库有关。

每次运行 docker-compose 构建时,我能做些什么来不触发每个依赖项的构建?

编辑:

这是我们的 docker-compose.yml.j2 的示例:http://termbin.com/b2xy

显然,为了共享,我已经对其进行了 sanitizer ,我们真正的 docker-compose 模板列出了大约十几个服务。

以下是其中一项服务的 Dockerfile 示例:http://termbin.com/upins

最佳答案

与其每次都更改构建的源代码(参数化 docker-compose.yml)并强制构建构建,您可以考虑独立构建容器,同时使用版本增量和标签标记它们。构建后将图像存储在本地注册表中。使用 docker-compose 来满足您的运行时需求。 docker-compose 可以使用多个 yaml 文件,因此如果您需要其他图像用于特定构建,只需拉取您需要的其他图像。对于生产,使用另一个组成系统运行的 yaml 文件。将 LABEL 添加到您的 Dockerfile。见 http://label-schema.org//rc1/适合您需要的一组标签。

关于docker - 如何阻止 TeamCity 每次都重新构建 docker 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50135940/

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