(я новичок в отношении Artifactory). Я использую CLI JFrog для продвижения сборок (образов докеров) из dev-репо в prod.При сборке я создаю три тега: один VERSION , один последний и один с идентификатором сборки.Когда я продвигаю с помощью команды "jfrog rt bpr
", я не хочу, чтобы тег build-id повышался, только VERSION и latest .
Я строю Dockerизображения с использованием Gitlab и JI-интерфейса JFrog для отправки изображений, сканирования с помощью рентгеновских лучей и публикации информации о сборке в Artifactory.
Мой процесс заключается в том, что в конвейере Gitlab я создаю образ докера с тремя тегами.
Затем я развертываю его в хранилище dev в Artifactory с помощью "jfrog rt docker-push...
" для всех трех тегов изатем опубликуйте информацию о сборке в Artifactory.
Затем я тестирую образ Docker на стадии тестирования в конвейере Gitlab, после чего выполняется сканирование рентгеновского снимка сборки с использованием JFrog cli.
Когда все работает, я хочу добавить образ Docker в мой репозиторий prod в Artifactory, используя JFrog cli.Это, однако, продвигает все три тега, но я хотел бы рекламировать только тег VERSION и последний , а не третий тег, который используется только как тег «снимка».
Возможно ли это с помощью команды jfrog cli promo?Или есть лучший способ думать обо всем процессе именования, маркировки и продвижения изображений от разработчика к продукту с использованием Artifactory?
This is the build stage:
# Build docker images
- >
docker build
-t $DOCKER_REGISTRY/$CI_PROJECT_NAME:latest
-t $DOCKER_REGISTRY/$CI_PROJECT_NAME:$VERSION
-t $DOCKER_REGISTRY/$CI_PROJECT_NAME:$CI_PIPELINE_ID
.
# Push to Artifactory's dev repo via the virtual repo
- jfrog rt docker-push $DOCKER_REGISTRY/$CI_PROJECT_NAME:latest docker-virtual --build-name=$CI_PROJECT_NAME --build-number=$CI_PIPELINE_ID
- jfrog rt docker-push $DOCKER_REGISTRY/$CI_PROJECT_NAME:$VERSION docker-virtual --build-name=$CI_PROJECT_NAME --build-number=$CI_PIPELINE_ID
# Collect environment variables
- jfrog rt build-collect-env $CI_PROJECT_NAME $CI_PIPELINE_ID
# Push build info to Artifactory, but exclude sensitive information such as passwords
- jfrog rt build-publish --build-url=$CI_PIPELINE_URL --env-exclude="*DOCKER_AUTH_CONFIG*;*PASSWORD*;*KEY*" $CI_PROJECT_NAME $CI_PIPELINE_ID
This is the promote stage:
- jfrog rt bpr --status=STABLE --copy=true $CI_PROJECT_NAME $CI_PIPELINE_ID docker-prod-local