Gitlab 使用git存储库中的标记标记docker图像

Gitlab 使用git存储库中的标记标记docker图像,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我将Gitlab用于存储库和ci/cd。 当前正在尝试设置从构建阶段创建docker映像的管道。 我看到的所有示例都有一个简单的图像命名,例如使用分支(主) 我的问题是,如果我想根据存储库中的当前标记来标记图像,我该怎么做? 我假设我可以使用Gitlab runner变量,但我们看不到它,就像在.Gitlab ci.yml中使用变量一样,您可以编辑一个构建脚本,并在该脚本中构建图像 项目根目录下的两个文件: build.sh: #/垃圾箱/垃圾箱 IMAGE=“$CI\u REGISTRY/$C

我将Gitlab用于存储库和ci/cd。 当前正在尝试设置从构建阶段创建docker映像的管道。 我看到的所有示例都有一个简单的图像命名,例如使用分支(主)

我的问题是,如果我想根据存储库中的当前标记来标记图像,我该怎么做? 我假设我可以使用Gitlab runner变量,但我们看不到它,就像在
.Gitlab ci.yml
中使用变量一样,您可以编辑一个构建脚本,并在该脚本中构建图像

项目根目录下的两个文件:

build.sh

#/垃圾箱/垃圾箱
IMAGE=“$CI\u REGISTRY/$CI\u PROJECT\u PATH:$CI\u BUILD\u REF\u NAME-$(git description--abbrev=0--tags)”
docker登录-u gitlab ci令牌-p$ci\u构建\u令牌$ci\u注册表
docker构建——pull-t$IMAGE。
docker推送$IMAGE
.gitlab ci.yml

image:docker:latest
服务:
-码头工人:丁
阶段:
-释放
发布:
阶段:发布
脚本:
-apk更新和apk添加git(&A)
-/build.sh

中有许多预定义的变量。我想您正在寻找
CI\u COMMIT\u标签

所以你可以这样使用它:

docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG

因此,图像看起来像
registry.example.com/group/project:tag

请注意,只有当您推送一个标记时,它才会起作用。对于后续提交,变量将为空。您可以使用“only”如果生成任务为空,则使用变量跳过生成任务的检查器:``only:refs:$master variables:-$CI\u COMMIT\u TAG``格式在注释中似乎不起作用。我想,发挥你的想象力吧。