Передача нескольких тегов Docker в Artifactory с использованием канала Bitbucket - PullRequest
2 голосов
/ 24 сентября 2019

У меня есть конвейер в Bitbucket, который создает образ 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_COMMIT} в качестве тега.

I также нужно нажать ${DOCKER_REGISTRY}/artifact_name:latest на Артефакторию.Есть ли способ сделать это с помощью одной трубы?Как я могу вставить теги ${BITBUCKET_COMMIT} и latest в Artifactory?

Я попытался добавить еще один элемент DOCKER_IMAGE_TAG в конфигурацию, но он просто использовал второй.И я посмотрел в документации, но не нашел никакой информации о том, как нажимать более одного тега одновременно.

1 Ответ

0 голосов
/ 25 сентября 2019

Вы должны пометить изображение тегом latest, прежде чем использовать трубу для проталкивания.

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'

В этом посте также объясняется, как обращаться с несколькими тегами https://stackoverflow.com/a/31963727/2183102

...