我有一个 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 中是如何工作的。其他人可能会帮助您完成基于插件的构建工作。


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!