3

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

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

我应该怎么办?

4

3 回答 3

11

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

于 2016-08-21T08:07:42.317 回答
1

你能检查你的 YAML 文件格式是否正确吗?

看起来您将“internal/docker-push”设置为 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
于 2016-07-11T18:24:00.340 回答
0

您能否通过 google.com 上的 gcr-contact 与我们联系(只有 GCR 人员可以看到此列表)并提供更多信息?只需掩盖private_key应该就足够了。

作为健全性检查,project_id您的 JSON 密钥是否匹配my-gcr-project,我相信(根据您的错误)是aagcp-1205

于 2016-07-05T19:20:39.460 回答