GitLab CI-如果存在变量,则设置变量
如果构建是标记的构建,我想将破折号加上repo标记设置为Docker图像构建,如果不是,我将解释 如果我只想设置标签(如果它存在的话),那么这将是微不足道的,因为这样可以工作:GitLab CI-如果存在变量,则设置变量,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,如果构建是标记的构建,我想将破折号加上repo标记设置为Docker图像构建,如果不是,我将解释 如果我只想设置标签(如果它存在的话),那么这将是微不足道的,因为这样可以工作: build-nginx: stage: build-nginx script: - command docker build -t $CI_REGISTRY_IMAGE:nginx$CI_COMMIT_TAG . - command docker push $CI_REGISTRY_IMAGE:n
build-nginx:
stage: build-nginx
script:
- command docker build -t $CI_REGISTRY_IMAGE:nginx$CI_COMMIT_TAG .
- command docker push $CI_REGISTRY_IMAGE:nginx$CI_COMMIT_TAG
如果没有标记,则可以创建
registry.example.com/image:nginx
,如果有,则可以创建registry.example.com/image:nginx1.0
,但如何将图像命名为registry.example.com/image:nginx-1.0
(带破折号),我必须检查是否设置了标记变量,否则,如果没有设置标记变量,我会得到一个名为registry.example.com/image:nginx-
的图像
- if [ -z "$CI_COMMIT_TAG" ]; then docker build -t $CI_REGISTRY_IMAGE:nginx$CI_COMMIT_TAG .; else docker push $CI_REGISTRY_IMAGE:nginx-$CI_COMMIT_TAG; fi
现在,我已经通过拆分和复制我的阶段并使用“仅:-标记”解决了这个问题。