2017-01-17 4 views
0

Я получаю ошибки аутентификации при попытке нажать на хранилище контейнеров google. Я вижу много вопросов по этому поводу и буду выполнять шаги, которые я сделал на основе дополнительных предложений. Я работаю локально в Windows, имея обновленную версию gcloud и docker.gcloud docker authentication x509 error

Начнем с того, что у меня есть активная учетная запись службы с полными правами владельца.

enter image description here

я могу увидеть в моем проекте и ведро просто отлично.

C:\Program Files (x86)\Google\Cloud SDK>gsutil acl get gs://api-project-773889352370-ml 
[ 
    { 
    "entity": "project-owners-773889352370", 
    "projectTeam": { 
     "projectNumber": "773889352370", 
     "team": "owners" 
    }, 
    "role": "OWNER" 
    }, 
    { 
    "entity": "project-editors-773889352370", 
    "projectTeam": { 
     "projectNumber": "773889352370", 
     "team": "editors" 
    }, 
    "role": "OWNER" 
    }, 
    { 
    "entity": "project-viewers-773889352370", 
    "projectTeam": { 
     "projectNumber": "773889352370", 
     "team": "viewers" 
    }, 
    "role": "READER" 
    } 
] 

Я могу загрузить ключ .json для своей учетной записи службы и активировать ее локально.

gcloud auth activate-service-account --key-file C:/Users/Ben/Dropbox/Google/MeerkatReader-9fbf10d1e30c.json 

У меня есть рабочий набор грузчика и логины

C:\Program Files (x86)\Google\Cloud SDK>docker push bw4sz/hello-world 
The push refers to a repository [docker.io/bw4sz/hello-world] 
a02596fdd012: Layer already exists 
latest: digest: sha256:a18ed77532f6d6781500db650194e0f9396ba5f05f8b50d4046b294ae5f83aa4 size: 524 

пометить мое тестовое изображение (привет-мир) с именем хоста и моим проектом ID и дать ему попробовать

C:\Program Files (x86)\Google\Cloud SDK>gcloud docker --push gcr.io/api-project-773889352370/hello-world 

ERROR: Docker CLI operation failed: 

Error response from daemon: Get https://gcr.kubernetes.io/v1/users/: x509: certificate has expired or is not yet valid 

ERROR: (gcloud.docker) Docker login failed. 

Хорошо, перейдем к передовым методам auth, предложенным here, here, и here

В документации говорится, что я могу обойти gcloud и напрямую использовать докеры, просто передайте мой .json keyfile для входа.

C:\Program Files (x86)\Google\Cloud SDK>docker login -u _json_key -p "$(cat C:/Users/Ben/Dropbox/Google/MeerkatReader-d77c0d6aa04f.json)" https://gcr.io 
Error response from daemon: Get https://gcr.io/v2/: unknown: Unable to parse json key. 

документы говорят, чтобы сделать это в два этапа, давайте попробуем, что:

C:\Program Files (x86)\Google\Cloud SDK>set /p PASS=<C:/Users/Ben/Dropbox/Google/MeerkatReader-9fbf10d1e30c.json 
C:\Program Files (x86)\Google\Cloud SDK>docker login -e [email protected] -u _json_key -p "%PASS%" https://gcr.io 
Flag --email has been deprecated, will be removed in 1.13. 
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password 

Другое предложение было использовать температуру маркера

C:\Program Files (x86)\Google\Cloud SDK>docker login -e [email protected] -u _token -p "$(gcloud auth print-access-token)" https://gcr.io 
Flag --email has been deprecated, will be removed in 1.13. 
Login Succeeded 

Великий давайте попробуем снова надавите.

C:\Program Files (x86)\Google\Cloud SDK>docker push gcr.io/api-project-773889352370/hello-world 
The push refers to a repository [gcr.io/api-project-773889352370/hello-world] 
a02596fdd012: Preparing 
denied: Unable to create the repository, please check that you have access to do so. 

Я видел, кто-то предложить, чтобы просто нажать на ведро, а не проект ID, который просто висит

C:\Program Files (x86)\Google\Cloud SDK>docker push gcr.io/api-project-773889352370-ml/hello-world 
The push refers to a repository [gcr.io/api-project-773889352370-ml/hello-world] 
a02596fdd012: Retrying in 1 second <- goes on forever. 

EDIT: Попытка внушения Раствора

C:\Program Files (x86)\Google\Cloud SDK>gcloud auth activate-service-account --key-file C:/Users/Ben/Dropbox/Google/MeerkatReader-9fbf10d1e30c.json 
Activated service account credentials for: [[email protected]] 

C:\Program Files (x86)\Google\Cloud SDK>gcloud docker -a -s gcr.io 
Short-lived access for ['gcr.io'] configured. 

C:\Program Files (x86)\Google\Cloud SDK>docker push gcr.io/api-project-773889352370/hello-world 
The push refers to a repository [gcr.io/api-project-773889352370/hello-world] 
a02596fdd012: Preparing 
denied: Unable to create the repository, please check that you have access to do so. 

ответ

0

его немного рубить, но единственное решение, которое я могу найти в

  1. Нажмите изображение dockerhub
  2. раскрутить экземпляр вычислителя
  3. установить докер (поосторожнее, какая версия, у меня было 1.6, мне нужно пойти> 1.9 в будущем, в соответствии с ОГП Документах)
  4. Прицепные изображения из dockerhub
  5. gcloud докер толчок к ГКЛ

Это сработало для меня. Не очень хорошее решение. Я приветствую предложения.

0

Спасибо за сообщение вопрос!

gcloud docker аутентифицирует вас для ALL of GCR's supported registries, by default. Срок действия сертификата gcr.kubernetes.io истек, прежде чем он был обновлен, что клиенту Docker не нравится (если клиент Docker использует хранилище учетных данных, gcloud docker будет вызывать docker login для каждого поддерживаемого реестра). gcr.kubernetes.io следует удалить из списка поддерживаемых реестров в gcloud SDK v141.0.0.

В то же время вы можете обойти эту проблему, выполнив gcloud docker -a -s gcr.io (и/или eu.gcr.io, us.gcr.io и т. Д.), А затем используя голый клиент Docker для выполнения фактических команд, например docker push gcr.io/api-project-773889352370/hello-world.

+0

Не совсем, но все ближе, добавляя ваше предложение в качестве редактирования. Спасибо за помощь! – bw4sz

Смежные вопросы