我有一个 jenkins 实例(它实际上在 docker 内部运行)用于我的持续集成。
jenkins 服务器在外部 docker 主机上构建 docker 镜像,测试它们,然后将它们推送到标记为 my-app:tested
的地方。 .
现在,当我构建一个版本时,我想将 docker 镜像从测试重新标记为 vX.X
.我愿意 不是 想用新标签重建图像,我想重新标记现有图像。
如何用 Jenkins 做到这一点?我正在浏览 jenkins 插件,但找不到任何具有此功能的插件。
请您参考如下方法:
由于您没有链接到您使用的任何插件,我不能轻易说他们是否能够重新标记现有图像,但是可以通过基于 shell 的作业来实现。
如果您在 Jenkins 中使用 shell(bash 或类似的东西)脚本,您可以使用标准的 docker 命令轻松完成此操作,用于标记现有图像。如果您的 my-app:test 图像已经为您的 jenkins 构建作业在本地缓存,您可以运行:
docker login -u $USER -p $PASSWORD <myregistry.example.org>
docker pull my-app:tested
docker tag my-app:tested my-app:vX.X
docker push my-app:vX.X
如果 my-app:tested 为 jenkins 作业在本地缓存,您可以省略
docker pull
命令。见
docker tag documentation想要查询更多的信息。如果这个基于 shell 命令的工作流程不适合您基于插件的构建工作流程,我不确定您会怎么做。
我个人不使用 Jenkins 或 Jenkins 插件来构建 docker 镜像,所以我不熟悉用于构建 Docker 镜像的插件在 Jenkins 中是如何工作的。其他人可能会帮助您完成基于插件的构建工作。