我在 gcr.io
中注意到,当我推送带有特定标签的 docker 镜像时:
gcr.io/myproject/myimage:mytag
如果该图像/标签组合已存在,则似乎会取消原始图像的标签,上传新图像,然后将标签应用到新图像。
这导致我的存储库因同一图像的许多未标记版本而变得臃肿。
如何测试图像/标签组合是否已存在于 gcr.io
中,以便我仅在需要时推送?
最佳答案
这是我在 shell 脚本中解决这个问题的方法
existing_tags=$(gcloud container images list-tags --filter="tags:mytag" --format=json gcr.io/myproject/myimage)
if [[ "$existing_tags" == "[]" ]]; then
printf "tag does not exist"
else
printf "tag exists"
fi
说明
我正在使用 gcloud 容器镜像列表标签
( documentation here )
并使用
--filter
标志过滤与mytag
匹配的标签并使用
--format=json 格式化为 JSON
本质上,如果标签 mytag
不存在,则其输出将是一个空数组 []
,否则,它确实存在。您可以通过脚本中的字符串比较来测试这一点,然后进行相应的操作。
关于docker - 如何测试 gcr.io 中是否已存在 docker 镜像的特定标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55343134/