如何基于公共注册表中的git标记创建Docker镜像?

时间:2014-10-20 08:40:02

标签: git github docker continuous-deployment

我正在使用Docker构建持续部署策略。我的代码托管在Github上,当我推送到git时,Docker注册表启动了自动构建。默认设置是在我推送到主控时开始构建,并使用“最新”标记创建图像。这很好,但我想也能够在git中标记提交并基于它创建一个图像。 在Docker注册表站点上似乎有一些功能,在Edit Automated Build设置页面上,我可以为类型选择“tag”并提供静态标签名称。

如何让Docker标记名称与Git标记名称相同?

目标是能够标记特定版本,以便有版本历史记录。

3 个答案:

答案 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}