GitLab CI:如何拉动特定的docker集装箱进行部署

我正在手动在gitlab中进行生产部署。 我正在使用docker集装箱。 点击pipe道列表中的“播放”button应该进行部署。 但是,如何获取所选容器的版本? 做这个脚本总是试图拉latest版本,这不应该。 我想拉“选定”的容器。

 deploy_prod: stage: deploy script: - docker pull $CI_REGISTRY_IMAGE # here selected version is missing # ... when: manual environment: name: productive url: https://example.com only: - master 

正如您对问题的评论中所提到的,只需使用您用来推送图像的相同脚本即可将其拉入展开阶段。

下面是一个pull.sh脚本的例子:

 #!/bin/sh args=("$@") CI_REGISTRY_IMAGE=${args[0]} PACKAGE_VERSION=$(cat package.json \ | grep version \ | head -1 \ | awk -F: '{ print $2 }' \ | sed 's/[",]//g' \ | tr -d '[[:space:]]') CONTAINER_RELEASE_IMAGE=$CI_REGISTRY_IMAGE\:$PACKAGE_VERSION docker pull $CONTAINER_RELEASE_IMAGE 

注意pull而不是在最后一行的push

然后像这样修改你的部署工作:

 deploy_prod: stage: deploy script: - ./pull.sh $CI_REGISTRY_IMAGE # ... when: manual environment: name: productive url: https://example.com only: - master