Загрузить изображение docker в GCR через python

#python #docker #google-container-registry

# #python #docker #google-контейнер-реестр

Вопрос:

Я работаю над кодом python, где мне нужно создать изображение docker и отправить его в GCR (реестр контейнеров Google). Я могу создать изображение docker, используя Docker SDK для Python, однако я не могу найти способ отправить его в gcr. Я изучал docker_client.images.push() метод, но я не вижу способа подключиться к gcr с помощью этого метода. Я могу создать изображение docker, используя docker_client.images.build() , но не могу найти способ отправить его в реестр контейнеров Google. Есть способы поместить его в реестр docker, но мне нужен конкретный gcr.

Я уже реализовал это с помощью cli Google или через Azure DevOps, однако я пытаюсь сделать то же самое с помощью приложения python.

Приветствуется любая помощь / предложение.

Комментарии:

1. Как бы вы это сделали, используя только инструменты командной строки? Работает ли прямой перевод этого в вызовы docker-py? (Обычно имя реестра является частью имени образа.)

2. У меня установлен gcloud sdk на моем локальном компьютере, а также на виртуальной машине, которая предназначена для конвейеров.

Ответ №1:

Похоже, это сработало для меня, используя Docker SDK:

 import docker

client  = docker.from_env()

image, logs = client.images.build(path="<path/to/your/docker-repo>")

image_dest = "gcr.io/<your-gcp-project>/<your-repo-name>"

image.tag(image_dest)

client.api.push(image_dest)
 

Мне также пришлось добавить разрешения с gcloud auth configure-docker помощью .

Ответ №2:

Вы смотрели на библиотеку python реестра контейнеров? https://github.com/google/containerregistry

Или, что еще лучше, рассматривали ли вы возможность перехода на go https://github.com/google/go-containerregistry