【问题标题】:upload docker image to google cloud platform: https://grc.io/v2/: Service Unavailable上传docker镜像到谷歌云平台:https://grc.io/v2/: Service Unavailable
【发布时间】:2020-11-25 22:48:08
【问题描述】:

我正在尝试将本地创建的 docker 映像(graalvm,Mac 上的 docker 桌面)上传到 gcp(具有真实项目 ID)。

我看到以下错误:

% docker push grc.io/<project>/facility
The push refers to repository [grc.io/<project>/facility]

Get https://grc.io/v2/: Service Unavailable

我设置了 gcloud 身份验证:

gcloud auth configure-docker

我的.docker/config.json 看起来像这样

{
  "experimental" : "disabled",
  "credHelpers" : {
    "gcr.io" : "gcloud",
    "us.gcr.io" : "gcloud",
    "eu.gcr.io" : "gcloud"
  },
  "auths" : {

  },
  "stackOrchestrator" : "swarm"
}

跑步

echo "https://gcr.io" | docker-credential-gcloud get

提供一个令牌。

有什么问题?

-- 更新--

当我运行这个(工作)

gcloud container images list --repository=gcr.io/<project-id> --log-http

它正在与https://gcr.io/v2/token?.. 交谈。上面的 docker-credential-gcloud 正在与 https://oauth2.googleapis.com/token 交谈。

【问题讨论】:

  • 将 https 添加到您的推送命令中?
  • 错误消息显示 https://.... 添加 https 会产生另一个错误 invalid reference format

标签: docker google-cloud-platform google-cloud-run google-container-registry


【解决方案1】:

这是一个替代解决方案:

gcloud builds submit --tag gcr.io/<project-name>/<app-name>

【讨论】:

    【解决方案2】:

    看起来你有一个错字。应该是 gcr.io 而不是 grc.io

    【讨论】:

    • oh my ;-) 使用gcr.io 运行推送现在确实抱怨项目已被删除(这是正确的)。但它不再抱怨服务不可用,所以我想这就是问题所在。很好的收获:-)
    【解决方案3】:

    你应该替换 &lt;project&gt; in

    docker push grc.io/<project>/facility
    

    使用您的项目 ID。

    如果您不确定如何获取项目 ID,您可以通过 cli 获取所有项目及其 ID 的列表。

    gcloud projects list
    

    【讨论】:

      【解决方案4】:

      在这方面花了更多时间后,我发现 gcp 有 container 注册表和 artifact 注册表(测试版)。

      由于我没有让它与容器注册表一起运行,我创建了一个新的测试项目和一个 artifact 注册表。

      除了注册地址外,设置相同。

      本地运行后

      gcloud auth application-default login
      gcloud beta auth configure-docker us-east1-docker.pkg.dev
      

      我的 ~/.docker/config.json 有以下 credHelper 条目

        "credHelpers": {
          "us-east1-docker.pkg.dev": "gcloud"
        },
      

      现在我可以标记和推送

      docker tag a01478beacf9 us-east1-docker.pkg.dev/test-2/facility/name
      docker push us-east1-docker.pkg.dev/test-2/facility/name
      

      标签有 4 个部分:

      HOST-NAME              /PROJECT-ID/REPOSITORY/IMAGE
      us-east1-docker.pkg.dev/test-2    /facility  /name
      

      它只是工作。 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-16
        • 1970-01-01
        • 2020-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-11
        • 1970-01-01
        相关资源
        最近更新 更多