使用git存储库中的标签标记docker映像

时间:2018-07-19 21:05:10

标签: gitlab gitlab-ci gitlab-ci-runner

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

我的问题是,是否要基于存储库中的当前标记来标记图像,我该怎么做? 我想我可以使用Gitlab跑步者变量,但看不到我们的人

2 个答案:

答案 0 :(得分:3)

Gitlab CI中有很多预定义的变量。我认为您正在寻找CI_COMMIT_TAG

因此您可以通过以下方式使用它:

docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG

所以图像看起来像registry.example.com/group/project:tag

答案 1 :(得分:2)

shell command is not possible yet.gitlab-ci.yml中具有变量一样,您可以编辑get the current tag的构建脚本并在该脚本中构建图像

两个文件都位于项目的根目录:

build.sh

#!/bin/sh

IMAGE="$CI_REGISTRY/$CI_PROJECT_PATH:$CI_BUILD_REF_NAME-$(git describe --abbrev=0 --tags)"

docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
docker build --pull -t $IMAGE .
docker push $IMAGE

.gitlab-ci.yml

image: docker:latest
services:
  - docker:dind

stages:
  - release

release:
  stage: release
  script:
    - apk update && apk add git
    - ./build.sh