Я хочу удалить некоторые нежелательные теги / изображения из различных репозиториев реестра контейнеров Azure. Я хочу сделать все это программно. Например, мне нужно:
- Аутентифицироваться с ACR
- Список всех репозиториев
- Список всех тегов каждого репозитория
- Удалите ненужные изображения с помощью определенных тегов.
Обычно эти операции можно выполнить с помощью Azure CLI и команд az acr
. Возможно, я смогу создать сценарий PowerShell с az acr
командами для этого.
Но могу ли я сделать это с помощью Python? Есть ли что-то вроде Graph API для выполнения этих операций?
Я нашел этот API для ACR, но он позволяет удалить только весь реестр. Он не позволяет выполнять операции, специфичные для репозитория: https://docs.microsoft.com/en-us/rest/api/containerregistry/
Я пробовал использовать 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":"*"}]}]}
Как правильно пройти аутентификацию с помощью ACR перед использованием Docker Registry API?