Den*_*lin 2 containers azure azure-container-registry acr
我正在尝试从所有存储库中清理一些 Azure 容器注册表映像。现在我正在一一输入存储库名称,但这看起来很乏味。
PURGE_CMD="acr purge --filter 'aag:.*' --filter 'aap_6.0:.*' --ago 1d --untagged --keep 7"
az acr task create --name PurgeACRImages \
--cmd "$PURGE_CMD" \
--schedule "5 6 * * 1" \
--registry myregistry \
--timeout 18000 \
--context /dev/null
Run Code Online (Sandbox Code Playgroud)
这里我给出了两个存储库的名称,现在我有 800 个存储库,并且在这个 PURGE_CMD 命令中键入 800 个存储库确实很困难。
我需要一个命令,通过它我可以从 ACR 选择所有存储库并将其存储到 PURGE_CMD 中
我们可以循环输出以az acr repository list将存储库名称过滤器连接到PURGE_CMD变量。
如果您使用的是 Linux 客户端,请从命令行运行以下命令:
PURGE_CMD="acr purge --ago 1d --untagged --keep 7"
for i in $(az acr repository list -n <yourRegistryName> -o tsv);do PURGE_CMD+=" --filter '"$i":.'";done
echo $PURGE_CMD
Run Code Online (Sandbox Code Playgroud)
如果您使用的是 Windows Powershell,请从命令行运行以下命令:
$PURGE_CMD="acr purge --ago 1d --untagged --keep 7"
foreach ($i in $(az acr repository list -n <yourRegistryName> -o tsv)){$PURGE_CMD+=" --filter '"+$i+":.'"}
echo $PURGE_CMD
Run Code Online (Sandbox Code Playgroud)
注意:替换<yourRegistryName>为 Azure 容器注册表的名称。
最后你可以运行:
az acr task create --name PurgeACRImages
--cmd "$PURGE_CMD"
--schedule "5 6 * * 1"
--registry myregistry
--timeout 18000
--context /dev/null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2999 次 |
| 最近记录: |