【问题标题】:Failed docker-push for GCR in werckerwercker 中 GCR 的 docker-push 失败
【发布时间】:2016-07-04 09:23:28
【问题描述】:

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

我该怎么办?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我不知道为什么您的答案没有被标记为正确。它绝对为我解决了这个问题,我遇到了同样的问题。谢谢!!
    • OSX / Linux 用户:tr -d '\n' < path-to-key-file.json
    【解决方案2】:

    您能检查一下您的 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
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 2021-10-23
        • 1970-01-01
        • 2022-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多