#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