在wercker中用于GCR的docker-push失败

yta*_*014 3 wercker google-cloud-platform google-container-registry

我正在使用wercker.我试图在内部/ docker-push中推送GCR的容器.但错误消息显示为belog:

Error interacting with this repository: gcr.io/my-gcr-project/wercker PUT https://gcr.io/v1/repositories/my-gcr-project/wercker/ returned 401
Run Code Online (Sandbox Code Playgroud)

我的wercker.yml是

steps:
  - internal/docker-push:
    username: _json_key
    password: $GCR_JSON_KEY_FILE
    registry: https://gcr.io
    repository: gcr.io/my-gcr-project/my-image-name
    tag: test
Run Code Online (Sandbox Code Playgroud)

AND $ GCR_JSON_KEY_FILE是Wercker Environment变量

它设置如下:(值被屏蔽.)

GCR_JSON_KEY_FILE: 

{
  "type": "",
  "project_id": "",
  "private_key_id": "",
  "private_key": "",
  "client_email": "",
  "client_id": "",
  "auth_uri": "",
  "token_uri": "",
  "auth_provider_x509_cert_url": "",
  "client_x509_cert_url": ""
}
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

mit*_*one 11

从Google Cloud Console下载JSON密钥文件后,打开它并删除空白.留下单行JSON.如果您将其粘贴到Wercker GUI中,则会被'\n'污染,并且使用GCR进行身份验证将失败.

  • OSX/Linux用户:`tr -d'\n'<path-to-key-file.json` (2认同)