使用Bitbucket管道将多个Docker标记推送到Artifactory

使用Bitbucket管道将多个Docker标记推送到Artifactory,artifactory,bitbucket-pipelines,Artifactory,Bitbucket Pipelines,我在Bitbucket中有一个管道,用于构建Docker映像。然后,它使用artifactory docker管道将该图像推送到artifactory。这是我的管道的相关部分 - docker build --pull --tag "${DOCKER_REGISTRY}/artifact_name:${BITBUCKET_COMMIT}" --tag "${DOCKER_REGISTRY}/artifact_name:latest" --target "artif

我在Bitbucket中有一个管道,用于构建Docker映像。然后,它使用artifactory docker管道将该图像推送到artifactory。这是我的管道的相关部分

- docker build
    --pull
    --tag "${DOCKER_REGISTRY}/artifact_name:${BITBUCKET_COMMIT}"
    --tag "${DOCKER_REGISTRY}/artifact_name:latest"
    --target "artifact_name"
    --file "path/to/Dockerfile" .
- pipe: JfrogDev/artifactory-docker:0.2.12
  variables:
    ARTIFACTORY_URL: $ARTIFACTORY_URL
    ARTIFACTORY_USER: $ARTIFACTORY_USER
    ARTIFACTORY_PASSWORD: $ARTIFACTORY_PASSWORD
    DOCKER_TARGET_REPO: $DOCKER_TARGET_REPO
    DOCKER_IMAGE_TAG: '${DOCKER_REGISTRY}/artifact_name:${BITBUCKET_COMMIT}'
    FOLDER: 'artifact_name'
    BUILD_NAME: 'artifact_name'
这就像预期的那样工作,在Artifactory中使用正确的
${BITBUCKET\u COMMIT}
值作为标记创建图像

我还需要将
${DOCKER\u REGISTRY}/artifact\u name:latest
推送到Artifactory。有没有办法用单根管子做到这一点?如何将
${BITBUCKET\u COMMIT}
最新的
标记推送到Artifactory


我曾尝试向配置中添加另一个
DOCKER\u IMAGE\u标记
元素,但它只是使用了第二个元素。我已经查看了文档,但没有找到关于如何一次推送多个标记的任何信息。

在使用管道推送之前,必须使用
最新的
标记图像

script:
  - docker build -t soldev-art-docker.jfrog.team/docker-pipe-example:$BITBUCKET_BUILD_NUMBER .
  # tag the image as latest and docker will push both tags for ya
  - docker tag soldev-art-docker.jfrog.team/docker-pipe-example:$BITBUCKET_BUILD_NUMBER soldev-art-docker.jfrog.team/docker-pipe-example:latest
  # now both tags will be pushed to the registry
  - pipe: JfrogDev/artifactory-docker:0.2.12
    variables:
      ARTIFACTORY_URL: '<string>'
      ARTIFACTORY_USER: '${ARTIFACTORY_USER}'
      ARTIFACTORY_PASSWORD: '${ARTIFACTORY_PASSWORD}'
      DOCKER_IMAGE_TAG: 'soldev-art-docker.jfrog.team/docker-pipe-example:${BITBUCKET_BUILD_NUMBER}'
      DOCKER_TARGET_REPO: 'docker-stage-local'
脚本:
-docker build-t soldev art docker.jfrog.team/docker管道示例:$BITBUCKET\u build\u NUMBER。
#将图像标记为最新,docker将为您推送这两个标记
-docker标记soldev art docker.jfrog.team/docker管道示例:$BITBUCKET\u BUILD\u编号soldev art docker.jfrog.team/docker管道示例:最新
#现在,两个标记都将被推送到注册表
-管道:JfrogDev/人工码头:0.2.12
变量:
工件\u URL:'
ARTIFACTORY\u USER:“${ARTIFACTORY\u USER}”
ARTIFACTORY_PASSWORD:“${ARTIFACTORY_PASSWORD}”
DOCKER_IMAGE_标记:'soldev art DOCKER.jfrog.team/DOCKER管道示例:${BITBUCKET_BUILD_NUMBER}'
DOCKER_TARGET_REPO:“DOCKER stage local”

这篇文章还解释了如何处理多个标签

这对我来说并不适用。我在build命令中尝试了两次标记(参见更新的示例),并根据您的示例将标记作为单独的步骤。artifactory docker管道仅推送docker_IMAGE_标记参数指定的标记。