如果我在ACR存储库中有以下标记和清单.

它在运行以下命令时返回以下内容.
az acr repository show-manifests --name "[registry-name]" --repository "[repository-name]"[
{
"digest": "sha256:30be2b07e723b0f36fed370c386b027e52dbcd0ad2ad2fcac1d3b7d1b361292f",
"tags": [
"982878",
"master"
],
"timestamp": "2022-09-07T15:49:04.4187041Z"
}
]当我运行下面的清除命令..。
az acr run --cmd "acr purge --filter '[repository-name]:.*' --untagged --ago 1m" --registry [registry-name] /dev/null它正在删除标记和清单,因为它删除了所有内容,所以存储库也会被删除。

当我使用--untagged标志时,它为什么要这样做?您可以清楚地看到,它没有根据起始状态去标记?
发布于 2022-09-08 11:40:29
我尝试在我的环境中复制相同的内容--我有两个存储库,hello-world with 1 tag: latest

我查看了下面的命令,您尝试过:
PURGE_CMD="acr purge --filter 'hello-world:.*' \
--untagged –ago 1m"
az acr run \
--cmd "$PURGE_CMD" \
--registry myregistry807 \
/dev/null它甚至正在删除标记的存储库。

这个命令:
az acr run --cmd "acr purge --filter 'hello-world:.*' --untagged --ago 1d" --registry myregistry807 /dev/null它首先删除标记,然后删除未标记的清单,然后删除注册表。
您可以检查这个清除标记和清单-按需运行-任务- Azure容器注册表\ Microsoft文档
这个清除命令删除了存储库中的所有图像标记和清单(在我的例子中是hello-world),这些存储库是在1天前修改的,并且删除了所有未标记的清单。
[?tags[0]==null] https://github.com/Azure/acr/issues/105 中删除命令,在该命令中,可以使用https://github.com/Azure/acr/issues/105只删除没有标记或空标记的repos。In bash:
az acr repository show-manifests -n myregistry807 –repository targetrepository --query "[?tags[0]==null].digest" -o tsv | xargs -I% az acr repository delete -n myregistry807 -t targetrepository @% --yes预览版本的:
az acr manifest list-metadata -r myregistry807 -n hello-world --query "[?tags[0]==null].digest" -o tsv | xargs -I% az acr repository delete -n myregistry807 -t hello-world@% --yes

和存储库没有被删除,因为它有标记。
然后,我与[?tags[0]!=null]检查以删除除null以外的所有标记,它成功地为我工作:

结果:删除标记的清单,这是唯一存在的:

https://stackoverflow.com/questions/73638500
复制相似问题