Удалите мои изображения AWS ECR с помощью docker golang sdk

# #amazon-web-services #docker #go

Вопрос:

Я использую docker golang sdk https://pkg.go.dev/github.com/docker/docker чтобы отправить мои изображения docker в AWS ECR, который отлично работает.

Теперь я хочу создать API для удаления моих изображений AWS ECR с помощью того же SDK.

Проблема в том , что ….

Метод ImagePush разрешает registryAuth, и именно так он знает, куда отправлять мои изображения docker. Но функции ImageList и ImageRemove не принимают registryAuth! Из-за этого функция ImageList показывает изображения docker из моей локальной среды.

Я попытался выполнить registryLogin непосредственно перед вызовом ImageList, но безуспешно. Что я здесь делаю не так?

 body, err := client.RegistryLogin(ctx, creds)
fmt.Println("login body", body)

images, err := client.ImageList(ctx,
    types.ImageListOptions{})
fmt.Println("list err", err)
 

Ответ №1:

Этот client.ImageRemove метод удаляет изображение только с вашего локального хоста, поэтому аутентификация не требуется.

Чтобы удалить изображение из реестра ECR, вам необходимо подключиться к его API. Вы можете использовать AWS SDK for Go API : https://docs.aws.amazon.com/sdk-for-go/api/service/ecr /