1

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 で適切に認証するにはどうすればよいですか?

4

2 に答える 2