Я обнаружил различное поведение внутри и снаружи изображения докеров для аутентификации учетной записи службы google.Аутентификация учетной записи Google Cloud-сервиса на изображении докеры
Снаружи. Преуспевает.
C:\Users\Ben\AppData\Local\Google\Cloud SDK>gcloud auth activate-service-account [email protected] --key-file C:/Users/Ben/Dropbox/Google/MeerkatReader-d77c0d6aa04f.json --project api-project-773889352370
Activated service account credentials for: [[email protected]]
Запустить контейнер докеров, передать ключ .json в каталог tmp.
C:\Users\Ben\AppData\Local\Google\Cloud SDK>docker run -it -v C:/Users/Ben/Dropbox/Google/MeerkatReader-d77c0d6aa04f.json:/tmp/MeerkatReader-d77c0d6aa04f.json --rm -p "127.0.0.1:8080:8080" --entrypoint=/bin/bash gcr.io/cloud-datalab/datalab:local-20161227
Изнутри грузчиком, подтверждают, что файл существует
[email protected]:/tmp# ls
MeerkatReader-d77c0d6aa04f.json npm-24-b7aa1bcf npm-45-fd13ef7c npm-7-22ec336e
Выполните ту же команду, как и раньше. Не удается.
[email protected]:/tmp# gcloud auth activate-service-account [email protected]
t.com --key-file MeerkatReader-d77c0d6aa04f.json --project api-project-773889352370
ERROR: (gcloud.auth.activate-service-account) Failed to activate the given service account. Please ensure provided key file is valid.
Что может послужить причиной этой ошибки? В более широком смысле, что такое suggested strategy для передачи учетных данных. Я пробовал это, и он терпит неудачу. Я использую облачный API и облачное зрение, и я бы хотел избежать ручного gcloud init в начале каждого запуска.
EDIT: Для того, чтобы показать gcloud информации
[email protected]:/# gcloud info --run-diagnostics
Network diagnostic detects and fixes local network connection issues.
Checking network connection...done.
Reachability Check passed.
Network diagnostic (1/1 checks) passed.
подтвердил такое же поведение
[email protected]:/tmp# gcloud auth activate-service-account [email protected] --key-file MeerkatReader-d77c0d6aa04f.json --project api-project-773889352370
ERROR: (gcloud.auth.activate-service-account) Failed to activate the given service account. Please ensure provided key file is valid.
Эта ошибка возникает, когда gcloud пытается получить токен доступа. У вас есть сетевое подключение и/или настройка прокси-сервера из контейнера. Можете ли вы запустить 'gcloud info --run-diagnostics'? – cherba
Отредактировано для добавления информации gcloud. Есть ли что-то, что мне нужно добавить для запуска docker, чтобы разрешить доступ (к определенному порту?). – bw4sz
Также, работая над этой проблемой, похоже, что веб-логин должен запускаться хотя бы один раз: _ «[Вам нужно только запустить команду один раз для локальной пользовательской среды.] (Https://cloud.google.com/docs/ аутентификация # get_credentials_for_server-centric_flow # local_development) "_ –