2016-12-01 4 views
0

gcloud 인터페이스를 사용하지 않고 GitLab CI에서 Google Container Registry를 사용하려고합니다. "는 JSON 키 파일을 사용"섹션에서 여기에 나열된 문서를 사용json 자격 증명을 수락하기 위해 Google Container Registry를 얻으려면 어떻게해야합니까?

는 : 나는했습니다

{ 
    "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" 
} 

: https://cloud.google.com/container-registry/docs/advanced-authentication

내 서비스 계정 자격 증명이 JSON 파일로 파일을 다운로드 한 다음 에러를 산출

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은 사용자 이름/암호 대화 형 프롬프트를 제공하므로 내 로컬 도커 설치시 문제가되지 않습니다.

누락 된 것이 있습니까?

답변

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 인스턴스에 연결해야합니다. 그래서 (맥 OS)에 명령 순서는 다음과 같은 :

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