При попытке отправить изображение докера в облачный реестр Google с помощью облачного Google Cli, я получаю сообщение об ошибке:
отказано: обмен токеном не выполнен для проекта. Доступ запрещен.
Я выполнил следующие шаги:
- Установлен Google cloud sdk shell
- Скачал ключевой json-файл для моей учетной записи IM
- Установить аутентификацию с помощью следующей команды:
google-cloud-sdk/bin/gcloud auth activate-service-account --key-file <path_to_json_file>
- Выполненная ниже команда для входа в систему:
docker login -u _json_key --password-stdin https://asia.gcr.io < path_to_json_file
Создан и помечен образ докера.
Попытка отправки изображения в GCR с помощью следующей команды:
docker push "asia.gcr.io/$GCLOUD_PROJECT_ID/$IMAGE_NAME:latest"
Я получаю результат следующим образом:
The push refers to repository [asia.gcr.io/<my_project_id>/<my_image_name>]
1bd77e11e1bf: Preparing
b57c79f4a9f3: Preparing
d60e01b37e74: Preparing
e45cfbc98a50: Preparing
762d8e1a6054: Preparing
denied: Token exchange failed for project <my_project_id>. Access denied.
Примечание:
1. Мой GCR API уже включен.
Используемая версия Docker: «Docker версия 18.09.2, сборка 6247962»
Я использую Windows-машину, на которой установлен облачный CLI Google. Так что все операции выполняются только из вдов.
То же самое я попробовал на образе Gitlab 'Docker: последний' в моем конвейере Gitlab. Ошибка одинакова в обоих местах (мой локальный компьютер с Windows и Gitlab Pipeline)