Я использую shippable, чтобы нажимать личные изображения докеров в реестр Google Container, которые я тогда хочу извлечь из локально на ноутбук или внутри экземпляра в Google Вычислить двигатель.Вытащить личные изображения докеров из Google Контейнерного реестра без gcloud
Я знаю, что работает команда gcloud preview docker pull gcr.io/projectID/image-name
, но я не могу полагаться на gcloud, установленную на каждой машине, с которой кому-то может понадобиться вытащить изображение.
Если я бег docker-compose up -d
на моей машине, то я получаю следующее сообщение об ошибке:
Pulling image gcr.io/projectID/image-name...
Pulling repository gcr.io/projectID/image-name
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 31, in main
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 21, in sys_dispatch
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 27, in dispatch
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 24, in dispatch
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 59, in perform_command
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 464, in up
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.project", line 208, in up
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.service", line 214, in recreate_containers
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.service", line 199, in create_container
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.progress_stream", line 37, in stream_output
File "/compose/build/docker-compose/out00-PYZ.pyz/compose.progress_stream", line 50, in print_output_event
compose.progress_stream.StreamOutputError: Error: Status 403 trying to pull repository projectID/image-name: "Access denied."
Есть ли способ для проверки подлинности или доступа к изображению с некоторой формой OAuth или ключей? Я хочу избегать установки gcloud на каждую машину, которая когда-либо понадобится, чтобы потянуть изображение, и изображения должны оставаться закрытыми.
Я пробовал gcloud preview docker -a
, но это не то решение, которое я ищу.
Заранее благодарю за любую помощь.
Вы пробовали это: http://stackoverflow.com/questions/29291576/access-google-container-registry-without-the-gcloud-client – mattmoor
Да, и ваше решение работает на GCE (спасибо!) , однако я не могу применить его при работе на локальной машине.Существует также проблема, которую я должен выполнить для проверки подлинности вручную на каждом создаваемом экземпляре GCE, который не является масштабируемым. – Maverick
Локально, вы можете использовать до сих пор использование «входа в докер», но замените «gcloud auth print-access-token» на curl (или gcloud docker -a). – mattmoor