Noe*_*oel 6 gitlab gitlab-ci gitlab-ci-runner
我将Gitlab用于存储库和ci / cd。当前正在尝试建立从构建阶段创建docker映像的管道。我看过的所有示例都有一个简单的图像命名,例如使用了branch(master)
我的问题是,是否要基于存储库中的当前标记来标记图像,我该怎么做?我想我可以使用Gitlab跑步者变量,但看不到我们一个
Gitlab CI中有很多预定义的变量。我想你在找CI_COMMIT_TAG。
因此,您可以通过以下方式使用它:
docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
所以图像看起来像 registry.example.com/group/project:tag
由于shell 命令无法使用内部变量.gitlab-ci.yml,您可以编辑一个构建脚本来获取当前标记并在该脚本中构建图像
项目根目录下的两个文件:
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
| 归档时间: | 
 | 
| 查看次数: | 3150 次 | 
| 最近记录: |