Azure コンテナー レジストリのさまざまなリポジトリから不要なタグ/イメージを削除したいと考えています。これらすべてをプログラムで実行したいと考えています。たとえば、私が必要とするのは次のとおりです。
- ACR で認証する
- すべてのリポジトリを一覧表示する
- 各リポジトリのすべてのタグを一覧表示する
- 特定のタグが付いた不要な画像を削除します。
通常、これらの操作は Azure CLI とaz acr
コマンドを使用して実行できます。az acr
これを実現するためのコマンドを含む PowerShell スクリプトを作成できるかもしれません。
しかし、Pythonでこれを行うことはできますか? これらの操作を行うグラフ API のようなものはありますか?
ACR 用のこの API を見つけましたが、レジストリ全体を削除することしかできません。リポジトリ固有の操作は許可されていません: https://docs.microsoft.com/en-us/rest/api/containerregistry/
docker レジストリ API を試してみました: https://docs.docker.com/registry/spec/api/
#!/bin/bash
export registry="myregistry.azurecr.io"
export user="myusername"
export password="mypassword"
export operation="/v2/_catalog"
export credentials=$(echo -n "$user:$password" | base64 -w 0)
export catalog=$(curl -s -H "Authorization: Basic $credentials" https://$registry$operation)
echo "Catalog"
echo $catalog
ただし、常にエラーが返されます。
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"registry","Name":"catalog","Action":"*"}]}]}
Docker レジストリ API を使用する前に ACR で適切に認証するにはどうすればよいですか?