[英]How to extract the value of a Docker image's tag
給定一個帶有多個圖像標簽的注冊表,例如:
myimage 0.0.3
myimage 0.0.2
我可以以某種方式將0.0.3
(或更確切地說是最新標記)提取到bash中的變量中嗎?
我想找出此值,以便隨后可以tagValue++
並將其用於Jenkins管道中,以執行以下操作:
docker build
以使用更新的標簽構建下一個圖像 docker push
將這個新的圖像標簽docker push
送到注冊表 kubectl set image
以使用已更新的圖像標簽更新帶有pod的Kubernetes集群 當然,如果有人有更好的策略,我全力以赴!
備擇方案:
從Kubernetes部署的YAML文件中獲取值,然后運行上述操作,使用更新的標簽更新文件,然后將更新的文件推回存儲庫?
與上述替代方法相同,但使用kubectl replace
代替kubectl set image
? ( 示例來自文檔)
我們將其與內部v2 docker注冊表一起使用。 它取決於jq,因此它可能不適合您。 注冊表似乎按照添加的順序返回它們,所以我們只是獲取最新的,如果您有足夠新的版本,則使用jq很有可能:
tags_url="https://hot.registry.example.com/v2/somerepoprefix/${repo}/tags/list"
newest_tag=$(curl $tags_url | jq -r '(.tags | reverse)[0]')
不同的方法,但是我使用詹金斯${BUILD_NUMBER}
環境變量來標記圖像。 另外,我向前移動了一個latest
標簽,因此我有兩種選擇。 這會導致同一張圖片多次標記有不同的內部版本號(如果沒有更改),但是我的設置很好。 因為我使用不同的Jenkins作業來構建圖像和更新k8,所以我使用jenkins api獲取各個作業的最新內部版本號:
containerTag=$(curl -u $user:$cred 'http://localhost:8080/job/$jobname/lastStableBuild/buildNumber')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.