[英]Azure - retrieving bicep module from container registry by major version
我的 Azure 容器注冊表中有存儲庫
我想在外部二頭肌文件中引用主要版本(v1)的最新模塊。 所以在這種情況下,版本為 v1.0 的模塊。 應使用25799 。
主二頭肌:
...
module appService 'br:myregistry.azurecr.io/bicep/myappmodule:v1' = {
name: 'appService'
params: {
...
}
}
...
有沒有辦法獲得最新的存儲庫版本?
我試過沒有成功:
在我的環境中進行了測試,發現您不能使用以下格式從容器注冊表中獲取最新的圖像。 您必須使用帶有標簽的完整圖像名稱才能使用最新/特定圖像。
- br:myregistry.azurecr.io/bicep/myappmodule:v1.*
- br:myregistry.azurecr.io/bicep/myappmodule:v1*
- br:myregistry.azurecr.io/bicep/myappmodule:v1:latest
- br:myregistry.azurecr.io/bicep/myappmodule:最新
將兩個具有相似名稱的圖像推送到 ACR,即您正在使用,例如嘗試從該圖像創建一個容器實例(位於容器注冊表中)
由於圖像試圖拉取以創建容器實例,因此出現錯誤,該名稱不存在。
嘗試使用容器注冊表中的全名,它工作正常。
建議您使用以下格式,因為它被推送到容器注冊表。
底線為什么目前不可能: https ://github.com/Azure/bicep/issues/4186#issuecomment-907600100
如果我們支持版本范圍而不是單個版本,則會出現一些有趣的復雜性:
- 每個使用版本范圍的模塊還原都需要額外的 LIST 調用來枚舉 ACR 存儲庫中的標簽,然后再下載模塊內容。
- 本地緩存的好處也會減少一點,因為我們總是需要查詢以檢查是否有更新的版本在請求的范圍內。
- 二頭肌構建變得不確定。 如果發布了新模塊,則運行一次然后再運行一次可能會產生兩種不同的結果。 NPM 和 NuGet 通過與源文件並排提交的鎖定文件解決了這個問題。
- 並非所有版本/標簽都遵循 xyz 格式。
- 發布到注冊表的已編譯 JSON 包含在二頭肌發布期間解決的所有依賴項。 即使您修改了其中一個依賴項,在重新發布模塊之前也不會發生任何變化。
(對我在 GitHub 中的想法請求的回應: https ://github.com/Azure/bicep/discussions/7043#discussioncomment-2978469)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.