如何确保并行Jenkins构建中的Docker构建不冲突?

时间:2019-03-01 19:05:38

标签: docker jenkins jenkins-pipeline jenkins-plugins

我正在使用Docker Pipeline插件在容器中运行每个Jenkins作业。我的每个詹金斯工作都将运行docker-compose build。如果我同时运行许多作业,则docker-compose命令可能会相互冲突。我知道我可以让每个版本都使用一些唯一的字符串作为docker网络的名称,或者作为docker-compose build命令的名称/标签,但是我希望找到一种不需要此名称的解决方案。也许有一种方法可以对每个Jenkins Job容器进行“命名空间”,以便它们的任何资源都不能共享?

1 个答案:

答案 0 :(得分:0)

您可以生成自定义{{3}}(例如,提交ID和/或作业号),以便由撰写文件创建的资源是唯一且可猜测的。这样,您无需修改​​撰写文件本身就可以将其移动到另一个位置。

docker-compose可以识别COMPOSE_PROJECT_NAME环境变量,也可以将其作为参数传递,例如docker-compose -p ${MY_UNIQUE_ID} build