【问题标题】:gcloud builds submit fails while docker push + gcloud run deploy work just fine?gcloud 构建提交失败,而 docker push + gcloud run deploy 工作正常吗?
【发布时间】:2022-02-28 18:57:02
【问题描述】:

编辑:所谓的重复问题从 1. 我可以推送另一个图像和 2. 我无法推送构建图像开始。最后,第 3 点是解决方案完全不同,仅与通过 cloudbuild 推送构建映像有关。 IE。我不敢苟同,这个问题是不同的。

遇到更多谷歌云安全问题。我们目前像这样部署到云上运行

docker build . --tag gcr.io/myproject/authservice
docker push gcr.io/myproject/authservice

gcloud run deploy staging-admin --region us-west1 --image gcr.io/myproject/authservice --platform managed

我为 google 构建做了快速入门,但我收到了权限错误。我做了这个命令

https://cloud.google.com/cloud-build/docs/quickstart-build

我运行的命令是

gcloud builds submit --tag gcr.io/myproject/quickstart-image

这都是同一个项目,但提交构建时一遍又一遍地得到同样的错误(我不知道为什么它不只是在第一个错误时退出。

The push refers to repository [gcr.io/myproject/quickstart-image]
e3831abe9997: Preparing
60664c29ef5a: Preparing
denied: Token exchange failed for project 'myproject'. Caller does not have permission 'storage.buckets.get'. To configure permissions, follow instructions at: https://cloud.google.com/container-registry/docs/access-control

任何想法如何解决,以便我可以使用谷歌云构建?

【问题讨论】:

标签: google-cloud-platform google-cloud-storage google-cloud-build google-iam


【解决方案1】:

补充前面的答案,正如 document 中提到的,要在 Container Registry 中执行操作,角色“sotrage admin”是必要的

您有“roles/storage.admin”角色吗?如果没有,请添加并尝试。

Could build service account 的格式为 [project_number]@cloudbuild.gserviceaccount.com 请按照以下步骤添加角色“roles/storage.admin”

  1. 打开云IAM page
  2. 选择您的 Cloud 项目。
  3. 在权限表中,找到包含电子邮件地址的行 以@cloudbuild.gserviceaccount.com 结尾。这是你的云 构建服务帐号。
  4. 点击铅笔图标。
  5. 选择您希望授予 Cloud Build 服务的角色 帐户。
  6. 点击保存。

【讨论】:

  • 是的,去过那里,做到了。请参阅我的回答,因为许可问题是一个完全该死的红鲱鱼。我在 google 的 github 上发现了一些不起眼的文档,并且在更改了这些权限之后,一切都奏效了。
【解决方案2】:

请注意:我阅读了重复的问题帖子,但在我的情况下

  1. 我可以推送项目
  2. 只有构建失败,并且我找到的解决方案与其他任何问题的答案都不同

这是一个非常奇怪的问题。存储权限必须是红鲱鱼,因为这些权限解决了问题

我在某个地方找到了一些我似乎无法在 google github 存储库中找到的关于添加这些权限的文档以及两个 @cloudbuild.gserviceaccount.com 帐户上的文档,并且您必须将权限添加到正确的一个! !!一个是谷歌所有的,你不应该碰。

【讨论】:

    【解决方案3】:

    就我而言,权限/令牌交换失败错误是由 Google Container Registry 使用的存储桶在 VPC 服务边界内引起的。

    这可以通过 VPC 服务控制日志进行检查/确认 - 可从 troubleshooting page 轻松访问。

    a (very clunky) way 可以让 Cloud Build 将映像推送到 VPC 边界内的注册表。它涉及运行构建工作池并将适当的配置和权限应用于外围等。

    【讨论】:

      猜你喜欢
      • 2023-02-11
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 2020-12-29
      • 2016-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多