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

时间:2016-07-04 09:23:29

标签: google-cloud-platform google-container-registry wercker

我正在使用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

我的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

AND $ GCR_JSON_KEY_FILE是Wercker环境变量

设定如下: (价值被掩盖了。)

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

我该怎么办?

3 个答案:

答案 0 :(得分:11)

从Google Cloud Console下载JSON密钥文件后,打开它并删除空白。留下单行JSON。如果你把它粘贴在Wercker GUI中,你就会被'\ n'污染,用GCR进行身份验证会失败。

答案 1 :(得分:1)

您可以检查您的YAML文件是否格式正确吗?

看起来你正在设置"内部/码头推送"为null,这可能不是你想要的。

试试这个:

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

答案 2 :(得分:0)

您可以通过google.com与我们联系gcr-contact(只有GCR人员可以看到此列表)并提供更多信息吗?只需屏蔽private_key即可。

作为完整性检查,您的JSON密钥中的project_id是否与my-gcr-project匹配,我认为(来自您的错误)是aagcp-1205