2 votes

Pousser plusieurs tags Docker vers Artifactory en utilisant Bitbucket pipe

J'ai un Pipeline dans Bitbucket qui construit une image Docker. Il utilise ensuite le tuyau artifactory-docker pour pousser cette image vers Artifactory. Voici la partie pertinente de mon pipeline.

- 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'

Cela fonctionne comme prévu, en créant l'image dans Artifactory avec le bon nom de fichier ${BITBUCKET_COMMIT} comme balise.

I également nécessité de pousser ${DOCKER_REGISTRY}/artifact_name:latest à Artifactory. Existe-t-il un moyen de faire cela avec le single pipe ? Comment puis-je pousser à la fois le ${BITBUCKET_COMMIT} y latest à Artifactory ?

J'ai essayé d'ajouter un autre DOCKER_IMAGE_TAG à la configuration, mais il utilise simplement le second. J'ai cherché dans la documentation mais je n'ai trouvé aucune information sur la façon de pousser plus d'une balise à la fois.

1voto

Alexander Zhukov Points 1955

Vous devez marquer l'image avec la balise latest avant d'utiliser le tuyau pour pousser.

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'

Cet article explique également comment gérer les étiquettes multiples. https://stackoverflow.com/a/31963727/2183102

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X