artifactory - 如何不使用 jfrog cli 提升命令将所有 Docker 标签从 dev repo 提升到 prod
问题描述
(我是 Artifactory 方面的新手)我使用 JFrog CLI 将构建(docker 图像)从 dev repo 推广到 prod。当我构建时,我创建了三个标签,一个VERSION,一个latest和一个带有构建 ID 的标签。当我使用“ jfrog rt bpr
”命令进行升级时,我不想升级 build-id 标签,只升级VERSION和latest。
我使用 Gitlab 构建 Docker 镜像,并使用 JFrog CLI 推送镜像、使用 X 射线扫描并将构建信息发布到 Artifactory。
我的过程是在 Gitlab 管道中,我使用三个标签构建 docker 映像。
然后我将它部署到 Artifactory 中的开发存储库,jfrog rt docker-push...
所有三个标签都带有“”,然后将构建信息发布到 Artifactory。
然后我在 Gitlab 管道的测试阶段测试 Docker 映像,然后使用 JFrog cli 对构建进行 X 射线扫描。
当一切正常时,我想使用 JFrog cli 将 Docker 映像提升到 Artifactory 中的 prod 存储库。但是,这会提升所有三个标签,但我只想提升VERSION和latest标签,而不是仅用作“快照”标签的第三个标签。
这可以使用 jfrog cli 提升命令吗?或者有没有更好的方法来思考使用 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
解决方案
推荐阅读
- java - 在 Java 中解析 Excel - 索引超出范围
- sorting - 如何在terraform中对两张地图进行排序/合并
- c# - 安装时在用户定义的路径安装文件或程序安装
- pandas - 错误的年份 pd.to_datetime
- css - CSS菜单导航栏问题
- java - 在 ETL 项目中进行自动化端到端测试的最佳方法是什么?
- c - 为什么我需要ac程序正好四个步骤
- angular - 子方法在父方法响应之前被调用
- amazon-web-services - 从 java 服务器上传到 S3 存储桶的多部分文件已损坏(即使在 API 网关中启用多部分/表单数据)
- android - 如何从 Kotlin 的列表中选择随机颜色?