我在使用Docker容器的Jenkins中构建了一个构建管道,但是我想构建一个图像,但只有当该图像不存在于与Jenkins相同的服务器上时正在运行。我追求最简单最优雅的做法,但我正在努力想出任何东西。只有在Jenkins中不存在的情况下构建泊坞窗图像
回答
你可以采取输出:
docker image ls
然后用grep你打算建立映像名称。然而,如果你在詹金斯“建立”一个图像,那将创建一个“新”图像 - 即使预先存在的图像应该是相同的 - 你怎么知道的?
泊坞窗图像是模板 - 这听起来像你正在重建不同主机上的图像?如果是这样,请考虑使用中央(私人)注册表,并从可能需要该映像的各种主机中提取内容。
如在question的回答中所述,您可以使用以下方法检查图像是否存在。
if [[ "$(docker images -q myimage:mytag 2> /dev/null)" == "" ]]; then
# do something
fi
谢谢,我的歉意,我应该在问题中说明这一点,我需要一种方法,将在Windows上工作。 – ChrisAdkin
说了这么多,我可以把你给我的东西和适应它用于PowerShell。 – ChrisAdkin
@ChrisAdkin是的,基本上'docker images'的-q选项在windows上应该是一样的。 – yamenk
- 1. 构建和推动泊坞窗图像
- 2. 泊坞窗构建产生许多不知名的图像
- 3. 如何运行泊坞窗,构成对泊坞窗群(不含泊坞窗机)
- 4. 泊坞窗Ubuntu运行情况
- 5. 打从泊坞窗图像
- 6. 泊坞窗图像层树
- 7. 缓存泊坞窗图像circleci
- 8. 无法保存文件后,泊坞窗图像中“泊坞窗提交”
- 9. 建立一个Ubuntu泊坞窗图像
- 10. 在泊坞窗
- 11. 泊坞窗图像惯于在后台
- 12. 如何升级泊坞窗图像而不创建新图像?
- 13. 不能在泊坞窗
- 14. 无法构建.net核心泊坞窗图像
- 15. 订购构建嵌套泊坞窗图像与撰写
- 16. 窗户泊坞窗图像64位
- 17. 窗户泊坞窗图像与oracle12
- 18. 泊坞窗组成的构建退出137(内存不足)
- 19. 泊坞窗:在Dockerfile
- 20. OpenJDK的在泊坞窗,构成
- 21. 泊坞窗:改变文件夹中存储泊坞窗卷
- 22. 管理泊坞窗图像的层次
- 23. 泊坞窗 - 通过argumens与泊坞窗以服务构成了
- 24. Jenkins在构建失败的情况下不执行shell脚本
- 25. mysql_user泊坞窗,构成
- 26. 泊坞窗,构成ubuntu上
- 27. 泊坞窗 - 编辑“泊坞窗”文件
- 28. 将S3文件下载到EBS中的泊坞窗图像
- 29. 如何在码头文件不存在的情况下构建码头图像
- 30. 在PostgreSQL中创建表泊坞镜像
你使用任何jenkins码头插件或直接shell命令? – yamenk
我正在使用shell命令,但如果这提供了最优雅的处理方式,我很乐意使用插件。 – ChrisAdkin
是否有一个原因,你不想建立图像,如果它已经存在?除非每次构建图像的内容都会发生变化,否则Docker构建缓存意味着重建现有图像几乎是瞬间完成的。 –