我試圖在不使用gcloud接口的情況下將GitLab CI與Google Container Registry一起使用。我如何讓Google Container Registry接受我的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安裝問題,據我所知。
有什麼我失蹤了嗎?
'搬運工ps'或任何其他搬運工命令正常工作,其中包括'搬運工登錄的https:// gcr.io';後者給我提供了一個用戶名/密碼提示,但沒辦法提供json文件作爲憑證。我相信它與JSON證書文件的格式(包含所有特殊字符和換行符)有關,但我不能肯定地說,並且確實沒有辦法診斷。 –
您使用的是什麼版本的碼頭?我嘗試完全一樣,我沒有使用JSON密鑰文件的問題。你檢查過你的docker守護進程日誌文件嗎?您可能想要啓用守護程序的調試模式以獲取更多信息 – Wei
Docker版本1.12.3,版本6b644ec。我沒有檢查日誌文件。我不知道有這樣的事情存在。 :D –