загрузить docker изображение на облачную платформу Google: https://grc.io/v2/: Служба недоступна - PullRequest
2 голосов
/ 05 августа 2020

Я пытаюсь загрузить локально созданное изображение docker (graalvm, docker desktop на Ma c) в gcp (с реальным идентификатором проекта).

Я вижу следующую ошибку :

% docker push grc.io/<project>/facility
The push refers to repository [grc.io/<project>/facility]

Get https://grc.io/v2/: Service Unavailable

Я установил gcloud auth:

gcloud auth configure-docker

и мой .docker/config.json выглядит так

{
  "experimental" : "disabled",
  "credHelpers" : {
    "gcr.io" : "gcloud",
    "us.gcr.io" : "gcloud",
    "eu.gcr.io" : "gcloud"
  },
  "auths" : {

  },
  "stackOrchestrator" : "swarm"
}

Работает

echo "https://gcr.io" | docker-credential-gcloud get

предоставляет токен.

В чем проблема?

- Обновление -

Когда я запускаю это (работает)

gcloud container images list --repository=gcr.io/<project-id> --log-http

он обращается к https://gcr.io/v2/token?... и docker -credential-gcloud выше обращается к https://oauth2.googleapis.com/token.

Ответы [ 4 ]

1 голос
/ 07 августа 2020

Похоже, у вас опечатка. Это должно быть gcr.io, а не gr c .io

1 голос
/ 05 августа 2020

Вот альтернативное решение:

gcloud builds submit --tag gcr.io/<project-name>/<app-name>
0 голосов
/ 06 августа 2020

Потратив на это больше времени, я обнаружил, что gcp имеет контейнер реестры и артефакт реестры (бета).

Поскольку я не запускаю его с помощью реестра контейнеров я создал новый тестовый проект и реестр артефакт .

Установка такая же, за исключением адреса реестра.

После локального запуска

gcloud auth application-default login
gcloud beta auth configure-docker us-east1-docker.pkg.dev

my ~ / .docker / config. json имеет следующую credHelper запись

  "credHelpers": {
    "us-east1-docker.pkg.dev": "gcloud"
  },

Теперь я могу пометить & pu sh

docker tag a01478beacf9 us-east1-docker.pkg.dev/test-2/facility/name
docker push us-east1-docker.pkg.dev/test-2/facility/name

Тег состоит из 4 частей:

HOST-NAME              /PROJECT-ID/REPOSITORY/IMAGE
us-east1-docker.pkg.dev/test-2    /facility  /name

, и он просто работает. :)

0 голосов
/ 05 августа 2020

Вы должны заменить <project> в

docker push grc.io/<project>/facility

идентификатором вашего проекта.

Если вы не знаете, как получить идентификатор проекта, вы можете получить список все проекты с их идентификаторами через cli.

gcloud projects list
...