(就Artifactory而言,我是新手)我使用JFrog CLI将开发(docker映像)从dev仓库升级到prod。构建时,我创建了三个标签,一个为 VERSION ,一个为 latest ,另一个为带有构建ID。当我使用“ jfrog rt bpr
”命令升级时,我不想升级build-id标记,仅升级 VERSION 和 latest 。
我使用Gitlab构建Docker图像,并使用JFrog CLI推送图像,使用X射线扫描以及将构建信息发布到Artifactory。
我的过程是在Gitlab管道中,我用三个标签构建docker镜像。
然后将其部署到Artifactory中的所有三个标签都带有“ jfrog rt docker-push...
”的dev存储库中,然后将构建信息发布到Artifactory。
然后,我在Gitlab Pipline的测试阶段测试Docker映像,然后使用JFrog cli对构建进行X射线扫描。
一切正常后,我想使用JFrog cli将Docker映像提升到Artifactory中的产品存储库。但是,这会提升所有三个标签,但我只想推广 VERSION 和 latest 标签,而不是仅用作“快照”标签的第三个标签。 / p>
使用jfrog cli boost命令是否可能?还是有更好的方法来思考使用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