使用 GCloud SDK CLI 的 GCR 图像标签列表
GCR Image Tag Listing using GCloud SDK CLI
我正在尝试获取我的私人 GCR 存储库中所有标签的列表。我可以使用“gcloud container images list-tags”命令来做到这一点,如下所示:
gcloud container images list-tags gcr.io/project-id/REPONAME
DIGEST TAGS TIMESTAMP
6b5727be962a 0.0.4,latest 2020-06-25T14:14:48
4b8c3f9c6ab7 0.0.3 2020-06-22T08:56:01
但是我需要将列表展平,以便我可以在不同的行中获得标签“0.0.4”和“最新”。我尝试了以下命令。
gcloud container images list-tags gcr.io/project-id/REPONAME --flatten='[].tags'
这给了我输出,令我惊讶的是重复“latest”标签但忽略了“0.0.4”
DIGEST TAGS TIMESTAMP
6b5727be962a latest 2020-06-25T14:14:48
6b5727be962a latest 2020-06-25T14:14:48
4b8c3f9c6ab7 0.0.3 2020-06-22T08:56:01
我做错了什么,我该如何解决?
我可以重现你的观察结果,我认为这是一个错误。
--flatten
似乎正确枚举了 tags
但不正确 returns 列表中的最后一个值作为每个条目的值。
在我的例子中,如果标签是 v1,v2,v3
,我得到:
gcloud container images list-tags gcr.io/${PROJECT}/${IMAGE} \
--flatten="[].tags[]" \
--format="value(tags)" \
--filter="digest=${DIGEST}"
v3
v3
v3
我建议您在 Google 的 Cloud SDK
问题跟踪器上提交错误
jq
如果你有jq
,也许:
gcloud container images list-tags gcr.io/${PROJECT}/${IMAGE} \
--format=json |\
jq -r '.[] | .digest as $D | .timestamp.datetime as $T | .tags[]| {"digest":$D,"tag":.,"timestamp":$T}'
或者:
gcloud container images list-tags gcr.io/${PROJECT}/${IMAGE} \
--format=json |\
jq -r '.[] | .digest as $D | .timestamp.datetime as $T | .tags[]| [$D,.,$T] | @csv'
我正在尝试获取我的私人 GCR 存储库中所有标签的列表。我可以使用“gcloud container images list-tags”命令来做到这一点,如下所示:
gcloud container images list-tags gcr.io/project-id/REPONAME
DIGEST TAGS TIMESTAMP
6b5727be962a 0.0.4,latest 2020-06-25T14:14:48
4b8c3f9c6ab7 0.0.3 2020-06-22T08:56:01
但是我需要将列表展平,以便我可以在不同的行中获得标签“0.0.4”和“最新”。我尝试了以下命令。
gcloud container images list-tags gcr.io/project-id/REPONAME --flatten='[].tags'
这给了我输出,令我惊讶的是重复“latest”标签但忽略了“0.0.4”
DIGEST TAGS TIMESTAMP
6b5727be962a latest 2020-06-25T14:14:48
6b5727be962a latest 2020-06-25T14:14:48
4b8c3f9c6ab7 0.0.3 2020-06-22T08:56:01
我做错了什么,我该如何解决?
我可以重现你的观察结果,我认为这是一个错误。
--flatten
似乎正确枚举了 tags
但不正确 returns 列表中的最后一个值作为每个条目的值。
在我的例子中,如果标签是 v1,v2,v3
,我得到:
gcloud container images list-tags gcr.io/${PROJECT}/${IMAGE} \
--flatten="[].tags[]" \
--format="value(tags)" \
--filter="digest=${DIGEST}"
v3
v3
v3
我建议您在 Google 的 Cloud SDK
jq
如果你有jq
,也许:
gcloud container images list-tags gcr.io/${PROJECT}/${IMAGE} \
--format=json |\
jq -r '.[] | .digest as $D | .timestamp.datetime as $T | .tags[]| {"digest":$D,"tag":.,"timestamp":$T}'
或者:
gcloud container images list-tags gcr.io/${PROJECT}/${IMAGE} \
--format=json |\
jq -r '.[] | .digest as $D | .timestamp.datetime as $T | .tags[]| [$D,.,$T] | @csv'