0

我目前正在使用它来检查 gcr.io 上是否有可用的图像。

tags_json=$(curl "https://gcr.io/v2/${repo}/${image}/tags/list" 2>/dev/null) tags_found="$(echo "${tags_json}" | jq ".tags | indices([\"${version}\"]) | any")"

这是不幸的,因为与那里的一些 LTS 发行版相比,jq该支持的版本相当新......indices

我可以为 docker.io 解决这个问题,它适用于旧版本jq

tags_json=$(curl "https://registry.hub.docker.com/v2/repositories/${repo}/${image}/tags/${version}/" 2>/dev/null) tags_found="$(echo "${tags_json}" | jq ".v2?")"

有一个更好的方法吗?我看到有人提到 GCR 在典型的 docker 注册表协议之上支持一些扩展。我可以在这里使用的任何东西。

4

1 回答 1

0

您可以使用 python json 解析工具。

下面是一个例子: curl https://gcr.io/v2/ ${repo}/${image}/tags/list 2>/dev/null | python -c '导入系统,json; 在 json.load(sys.stdin)["tags"]' ${version} 中打印 sys.argv[1]

希望这可以帮助!

于 2016-04-06T00:36:01.060 回答