2016-12-01 12 views
0

Я пытаюсь использовать реестр Google Container с GitLab CI без использования интерфейса gcloud.Как получить реестр Google Container для принятия моих учетных данных json?

Используя документы, перечисленные здесь, в разделе «Использование ключевого файла JSON»: https://cloud.google.com/container-registry/docs/advanced-authentication

Я скачал мои учетные данные учетной записи службы файл в формате JSON файла:

{ 
    "type": "service_account", 
    "project_id": "REDACTED", 
    "private_key_id": "REDACTED", 
    "private_key": "-----BEGIN PRIVATE KEY-----\nBIGLONGLISTOFGARBLEDTEXTNSTUFF\n-----END PRIVATE KEY-----\n", 
    "client_email": "[email protected]", 
    "client_id": "NUMBERSNUMBERSNUMBERS", 
    "auth_uri": "https://accounts.google.com/o/oauth2/auth", 
    "token_uri": "https://accounts.google.com/o/oauth2/token", 
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", 
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/somethingsomething%40developer.gserviceaccount.com" 
} 

Я затем попытался войти в систему, используя указанную команду:

docker login -u _json_key -p "$(cat google_cred.json)" https://gcr.io 

Это дает следующее сообщение об ошибке:

Cannot connect to the Docker daemon. Is the docker daemon running on this host? 

docker login https://gcr.io представляет меня с именем пользователя/пароль интерактивным режимом, так что это не проблема с моей локальной установкой Docker, насколько я могу судить.

Есть ли что-то, что мне не хватает?

ответ

0

Похоже, что ваш клиент не может разговаривать с вашим демоном Docker, я предполагаю, что что-то простое, как docker ps возвращает то же сообщение?

Нужно ли вам sudo перед командой? Как обычно вы вызываете Docker?

+0

'Докер ps' или любые другие команды Докер работают нормально, в том числе' докеров входа https: // gcr.io'; последний представляет мне приглашение имени пользователя/пароля, но никак не может предоставить json-файл в качестве учетных данных в этот момент. Я считаю, что это имеет какое-то отношение к формату файла учетных данных JSON (со всеми специальными символами и символами новой строки), но я не могу сказать наверняка, и нет никакого способа диагностировать. –

+0

Какую версию докера вы используете? Я пробовал точно так же, и у меня нет проблем с использованием файла ключей JSON. Вы проверили, что говорит файл журнала демона докеров? Вы можете включить режим отладки демона, чтобы получить дополнительную информацию. – Wei

+0

'Docker version 1.12.3, build 6b644ec'. Я не проверял файл журнала. Я не знал, что такая вещь существует. : D –

0

Обязательно подключайтесь к экземпляру Google Compute Engine через локальный докер, прежде чем пытаться подключиться к докере. Таким образом, последовательность команд (на MacOS) что-то вроде:

export GOOGLE_APPLICATION_CREDENTIALS=<your-cred.json> 
eval $(docker-machine env <your-google-instance>) 
docker login -u _json_key -p "$(cat <your-cred.json>)" https://gcr.io