我是GitLab Auto DevOps的新手。
我遇到了一些环境变量,分别是“ CI_APPLICATION_TAG
”,“ CI_APPLICATION_REPOSITORY
”,“ CI_COMMIT_REF_SLUG
”。
我找不到他们的定义在哪里。有没有人可以帮助我?
答案 0 :(得分:1)
您可以在gitlab-org/gitlab-ci-yml
issue 50
Auto DevOps中的Docker映像命名策略是通过auto_devops before_script开头附近的
CI_APPLICATION_REPOSITORY
和CI_APPLICATION_TAG
变量定义的。
格式与我命名和标记图像的方式不同,但是内联导出语句使自定义变得很困难,因为脚本本身必须进行修改。export CI_APPLICATION_REPOSITORY=$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG export CI_APPLICATION_TAG=$CI_COMMIT_SHA
还有gitlab-org/gitlab-ce
issue 53129
为在项目中构建Docker映像,GitLab CI提供了预定义变量
CI_REGISTRY_IMAGE
,该变量返回存储在与项目绑定的Container Registry中的映像的基本映像名称。它可以与
CI_COMMIT_REF_NAME
或CI_COMMIT_REF_SLUG
一起用于图像标签。
Docker.gitlab-ci.yml
template demonstrates在其构建作业脚本中。- docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" . - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
GitLab Auto DevOps在其before_script中为图像名称和标签声明了两个局部变量。
export CI_APPLICATION_REPOSITORY=$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG export CI_APPLICATION_TAG=$CI_COMMIT_SHA
使用:
CI_APPLICATION_REPOSITORY
用于定义图像名称,并且CI_APPLICATION_TAG
(用于图片标签)
答案 1 :(得分:0)
if [[ -z "$CI_COMMIT_TAG" ]]; then
export CI_APPLICATION_REPOSITORY=${CI_APPLICATION_REPOSITORY:-$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG}
export CI_APPLICATION_TAG=${CI_APPLICATION_TAG:-$CI_COMMIT_SHA}
else
export CI_APPLICATION_REPOSITORY=${CI_APPLICATION_REPOSITORY:-$CI_REGISTRY_IMAGE}
export CI_APPLICATION_TAG=${CI_APPLICATION_TAG:-$CI_COMMIT_TAG}
fi