我在使用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. 建立在CodeBuild泊坞窗图像的顶部泊坞窗图像
- 3. 不能推泊坞窗图像泊坞窗私有注册
- 4. 不能在泊坞窗图像
- 5. 泊坞窗构建产生许多不知名的图像
- 6. 如何运行泊坞窗,构成对泊坞窗群(不含泊坞窗机)
- 7. 泊坞窗Ubuntu运行情况
- 8. 泊坞窗图像层树
- 9. 打从泊坞窗图像
- 10. 缓存泊坞窗图像circleci
- 11. 无法保存文件后,泊坞窗图像中“泊坞窗提交”
- 12. 建立一个Ubuntu泊坞窗图像
- 13. 泊坞窗构建中的访问量
- 14. 如何在不使用Docker Pull的情况下检测是否有新的泊坞窗图像?
- 15. 在泊坞窗
- 16. 在泊坞窗
- 17. 不能在Windows的gradle通过建立泊坞窗图像10
- 18. 泊坞窗图像惯于在后台
- 19. 如何下载泊坞图像,而不使用泊坞窗直接Internet连接
- 20. 如何验证本地构建的泊坞窗图像?
- 21. 不能在泊坞窗
- 22. 窗户泊坞窗图像与oracle12
- 23. 窗户泊坞窗图像64位
- 24. 无法构建.net核心泊坞窗图像
- 25. 订购构建嵌套泊坞窗图像与撰写
- 26. 泊坞窗:在Ubuntu
- 27. 泊坞窗:在Dockerfile
- 28. 泊坞窗组成的构建退出137(内存不足)
- 29. 泊坞窗:改变文件夹中存储泊坞窗卷
- 30. OpenJDK的在泊坞窗,构成
你使用任何jenkins码头插件或直接shell命令? – yamenk
我正在使用shell命令,但如果这提供了最优雅的处理方式,我很乐意使用插件。 – ChrisAdkin
是否有一个原因,你不想建立图像,如果它已经存在?除非每次构建图像的内容都会发生变化,否则Docker构建缓存意味着重建现有图像几乎是瞬间完成的。 –