我正在使用Docker构建持续部署策略。我的代码托管在Github上,当我推送到git时,Docker注册表启动了自动构建。默认设置是在我推送到主控时开始构建,并使用“最新”标记创建图像。这很好,但我想也能够在git中标记提交并基于它创建一个图像。 在Docker注册表站点上似乎有一些功能,在Edit Automated Build设置页面上,我可以为类型选择“tag”并提供静态标签名称。
如何让Docker标记名称与Git标记名称相同?
目标是能够标记特定版本,以便有版本历史记录。
答案 0 :(得分:2)
您可以在Docker注册表中的“自动构建”设置下执行此操作。默认情况下,这会根据您的“主”分支进行称为“最新”的构建,但您也可以为特定的git标记添加自动构建。下图显示了相关屏幕
答案 1 :(得分:2)
命令行中最简单的解决方案是嵌套的git-rev命令:
docker tag <image> <image>:$(git rev-parse --short HEAD)"
给你举个例子
<image> = myImage >> myImage:67df348
答案 2 :(得分:0)
我遇到了同样的问题,我已经使用这个插件对其进行了整理:
https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin
这不是一个非常漂亮的解决方案,但它有效,所以:
1)执行shell:echo TAG=${GIT_BRANCH#*/} > docker_tag
2)注入环境变量属性文件路径:docker_tag
3)在https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Build+and+Publish+plugin
上使用${TAG}