特定のタグだけを削除する方法はありますか? REST / cli-acrを使用してレジストリ全体を削除する方法しか見つかりませんでした
ありがとう
Azure CLI 2.0を使用して、特定のタグを持つリポジトリからイメージを削除できます。
az acr repository delete -n MyRegistry --repository MyRepository --tag MyTag
MyRegistry
は Azure Container Registry の名前ですMyRepository
リポジトリの名前ですMyTag
削除するタグを示します。を省略して、リポジトリ全体を削除することもできます--tag MyTag
。az acr repository delete
コマンドの詳細については、https ://docs.microsoft.com/en-us/cli/azure/acr/repository#delete を参照してください。
クォータが 100% に達したため、リポジトリから履歴イメージを削除したいという同様の問題がありました。
これは、Azure CLI 2.0 で次のコマンドを使用して行うことができました。このプロセスは次のことを行います。タグのリストを取得し、grep でフィルター処理し、sed でクリーンアップしてから、delete コマンドに渡します。
指定されたリポジトリのすべてのタグを取得します
az acr repository show-tags -n [registry] --repository [repository]
特定の入力で始まるすべてのタグを取得し、それを sed にパイプして、末尾のコンマを削除します
grep \"[starts with] | sed 's/,*$//g'
xargs を使用して、出力を変数 X に割り当て、それをタグとして使用します。
--manifest : タグによって参照されるマニフェストを削除します。これにより、関連するレイヤー データと、マニフェストを参照する他のすべてのタグも削除されます。
--yes -y : 確認を求めません。
xargs -I X az acr repository delete -n [registry] --repository [repository] --tag X --manifest --yes
例: registry = myRegistry、repository = myRepo、タグ名「test」で始まるすべてのタグを削除したい (これには test123、testing などが含まれます)
az acr repository show-tags -n myRegistry --repository myRepo | grep \"test | sed 's/,*$//g' | xargs -I X az acr repository delete -n myRegistry --repository myRepo --tag X --manifest --yes
詳細については、Microsoft Azure Docsを参照してください。