我想要實作的是,我給同事一個 docker 容器,讓他在他的 PC 上本地運行(通過 docker run)。我經常通過 Gitlab CI 構建它,并將它與版本標簽 (Semver 2.0) 一起推送到 Nexus。
同事應該得到一個簡單的 bash 腳本,如下所示:
#!/bin/bash
docker run -it -p 8080:80 nexus.company.net/goodservice:latest --dependency-overrides=local
echo "find the good service under http://localhost:8080, have fun!"
(“--dependency-overrides”是我剛剛實作的一個簡單方法,這樣他就可以在沒有Redis的情況下運行整個東西,我用這種方式替換了DI容器中的實作。)
問題:
下載一個版本(例如:1.0.1-pre.5)后,“最新”不再進行任何更新。
我可以通過在 docker run 上使用“--pull=always”輕松修復它,但它是一個整體大小約為 100 MB 的 .NET 映像(它已經是高山了,但它仍然很多)。同事使用按流量計費的 4G 互聯網連接。
有什么方法可以讓 docker 檢查“最新”現在是否是其他東西?在檔案中沒有找到任何內容。
(如果來自 docker(或 CNCF?)的人讀到這篇文章:有一個像“--pull=updated”這樣的選項會很棒。:-))
有任何想法嗎?
uj5u.com熱心網友回復:
向腳本添加docker pull命令。它只會在更新后拉取影像。
#!/bin/bash
docker pull nexus.company.net/goodservice:latest
docker run -it -p 8080:80 nexus.company.net/goodservice:latest --dependency-overrides=local
echo "find the good service under http://localhost:8080, have fun!"
如果您想限制需要下載的資料量,您需要確保在創建新版本時通常只觸及影像的最后一層。這樣你的同事只需要下載最后一層而不是整個影像。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/534143.html
標籤:码头工人
上一篇:RedHat基礎鏡像-使用“rpm”列出安裝在鏡像中的包,而不運行它
下一篇:如何在貓鼬中正確使用索引?
