使用Bitbucket管道将多个Docker标记推送到Artifactory
我在Bitbucket中有一个管道,用于构建Docker映像。然后,它使用artifactory 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
- 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_标记参数指定的标记。