gpt4 book ai didi

jenkins-pipeline - 如何为管道中的 Dockerfile 代理覆盖 Jenkins 的随机图像标签

转载 作者:行者123 更新时间:2023-12-04 00:38:11 25 4
gpt4 key购买 nike

我的 Jenkinsfile 中有一个使用 Dockerfile 运行的步骤代理人。当 jenkins 创建 docker 镜像时,它会给它一个随机的长标签,我想用我自己的标签替换它。我尝试使用 additionalBuildArgs 传递标签但这给了 docker 镜像一个额外的标签。

agent {
dockerfile {
additionalBuildArgs '-t my-image:latest'
}
}

有没有办法阻止 Jenkins 传递标签?

最佳答案

控制这个 Action 的插件是pipeline-model-definition-plugin .

您可以在 plugin's code 看到图像名称是项目名称和 dockerfile 路径的散列:

def hash = Utils.stringToSHA1("${runWrapper.fullProjectName}\n${script.readFile("${dockerfilePath}")}")
def imgName = "${hash}"

然后它需要额外的参数并将它们添加到图像名称中:
def additionalBuildArgs = describable.getAdditionalBuildArgs() ? " ${describable.additionalBuildArgs}" : ""
script.sh "docker build -t ${imgName}${additionalBuildArgs} -f \"${dockerfilePath}\" \"${describable.getActualDir()}\""

因此,通过使用 dockerfile 步骤,该名称似乎始终是一个哈希值。

关于jenkins-pipeline - 如何为管道中的 Dockerfile 代理覆盖 Jenkins 的随机图像标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52235086/

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