我在使用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構建緩存意味着重建現有圖像幾乎是瞬間完成的。 –