我有一个jenkins实例(实际上在docker中运行)用于我的Continous Integration.
jenkins服务器在外部docker主机上构建docker镜像,测试它们然后将它们推送到my-app标记:已测试.
现在,当我构建一个版本时,我想将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:tests在本地缓存为jenkins作业,则可以省略docker pull命令.有关更多信息,请参见docker tag documentation.如果这个基于shell命令的工作流不适合你的基于插件的构建工作流,我不知道你会怎么做.
我个人不使用Jenkins或Jenkins插件来构建docker镜像,所以我不熟悉构建Docker镜像的插件如何在Jenkins中工作.其他人可能能够帮助您使用基于插件的构建作业.