Kon*_*262 5 azure-container-registry
如果我在 ACR 存储库中有以下标签和清单...
当我运行以下命令时,它会返回以下内容...
az acr repository show-manifests --name "[registry-name]" --repository "[repository-name]"
Run Code Online (Sandbox Code Playgroud)
[
{
"digest": "sha256:30be2b07e723b0f36fed370c386b027e52dbcd0ad2ad2fcac1d3b7d1b361292f",
"tags": [
"982878",
"master"
],
"timestamp": "2022-09-07T15:49:04.4187041Z"
}
]
Run Code Online (Sandbox Code Playgroud)
当我运行以下清除命令时......
az acr run --cmd "acr purge --filter '[repository-name]:.*' --untagged --ago 1m" --registry [registry-name] /dev/null
Run Code Online (Sandbox Code Playgroud)
它正在删除标签和清单,并且因为它删除了所有内容,所以存储库也被删除。
为什么当我使用该标志时它会这样做,--untagged并且您可以清楚地看到它没有根据起始状态取消标记?
我尝试在我的环境中重现相同的内容\n我有两个存储库,hello-world with 1 tag: latest\n
我检查了您尝试过的以下命令:
\nPURGE_CMD="acr purge --filter \'hello-world:.*\' \\\n--untagged \xe2\x80\x93ago 1m"\n\naz acr run \\\n --cmd "$PURGE_CMD" \\\n --registry myregistry807 \\\n /dev/null\nRun Code Online (Sandbox Code Playgroud)\n它甚至删除了标记的存储库
\n\n这个命令:
\naz acr run --cmd "acr purge --filter \'hello-world:.*\' --untagged --ago 1d" --registry myregistry807 /dev/null\nRun Code Online (Sandbox Code Playgroud)\n它首先删除标签,然后删除未标记的清单,然后删除注册表。
\n您可以检查此 清除标签和清单-在按需任务中运行 - Azure 容器注册表 | 微软文档:
\n\n\n此清除命令将删除 myregistry 中\n存储库(在本例中为 hello-world)存储库中超过 1 天前修改的所有图像标签和清单以及所有未标记的清单。
\n
[?tags[0]==null]删除\n不带标签或空标签的存储库。在bash中:
\naz acr repository show-manifests -n myregistry807 \xe2\x80\x93repository targetrepository --query "[?tags[0]==null].digest" -o tsv | xargs -I% az acr repository delete -n myregistry807 -t targetrepository @% --yes\nRun Code Online (Sandbox Code Playgroud)\n对于预览版本:
\naz 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\nRun Code Online (Sandbox Code Playgroud)\n\n并且存储库不会被删除,因为它有标签。
\n然后我检查[?tags[0]!=null]删除除空之外的所有标签,它成功地为我工作:
结果:删除了唯一存在的标记清单:
\n\n| 归档时间: |
|
| 查看次数: |
1355 次 |
| 最近记录: |