gcloud builds 提交失败,而 docker push + gcloud 运行 deploy 工作正常吗?
gcloud builds submit fails while docker push + gcloud run deploy work just fine?
编辑:从 1 开始,所谓的重复问题就消失了。我可以推送另一个图像和 2。我无法推送构建图像。最后,第 3 点是完全不同的解决方案,仅与通过 cloudbuild 推送构建映像有关。 IE。我不同意这个问题是不同的。
运行 更多 google 云安全内容。我们目前像这样 运行 部署到云
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 云构建的任何想法?
补充前面的答案,如本 document 中所述,要在 Container Registry 中执行操作,角色 "sotrage admin" 是必需的
你有"roles/storage.admin"角色吗?如果没有,添加试试。
可以构建服务帐户具有这种格式[project_number]@cloudbuild.gserviceaccount.com请按照以下步骤添加角色"roles/storage.admin"
- 开云IAM page
- Select 您的 Cloud 项目。
- 在权限 table 中,找到包含电子邮件地址的行
以@cloudbuild.gserviceaccount.com结尾。这是你的云
建立服务帐户。
- 单击铅笔图标。
- Select 您希望授予 Cloud Build 服务的角色
帐号。
- 点击保存。
注意:我阅读了重复的问题 post 但在我的情况下
- 我可以推送物品
- 只有构建失败并且我找到的解决方案与任何其他问题的答案都不同
这是一个非常奇怪的问题。存储权限必须是红色鲱鱼,因为这些权限解决了问题
我在某个地方找到了一些文档,我似乎无法在 google github 存储库中找到关于添加这些权限的文档以及关于两个 @cloudbuild.gserviceaccount.com 帐户和你的文档一定要给正确的添加权限!!!!一个归 google 所有,您不应该触摸。
在我的例子中,权限/令牌交换失败错误是由 Google Container Registry 在 VPC 服务边界内使用的存储桶引起的。
这可以通过 VPC 服务控制日志检查/确认 - 从 troubleshooting page.
可以轻松访问
有 a (very clunky) way 让 Cloud Build 工作以将图像推送到 VPC 边界内的注册表。它涉及 运行 构建工作池并将适当的配置 + 权限应用于周边等
编辑:从 1 开始,所谓的重复问题就消失了。我可以推送另一个图像和 2。我无法推送构建图像。最后,第 3 点是完全不同的解决方案,仅与通过 cloudbuild 推送构建映像有关。 IE。我不同意这个问题是不同的。
运行 更多 google 云安全内容。我们目前像这样 运行 部署到云
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 云构建的任何想法?
补充前面的答案,如本 document 中所述,要在 Container Registry 中执行操作,角色 "sotrage admin" 是必需的
你有"roles/storage.admin"角色吗?如果没有,添加试试。
可以构建服务帐户具有这种格式[project_number]@cloudbuild.gserviceaccount.com请按照以下步骤添加角色"roles/storage.admin"
- 开云IAM page
- Select 您的 Cloud 项目。
- 在权限 table 中,找到包含电子邮件地址的行 以@cloudbuild.gserviceaccount.com结尾。这是你的云 建立服务帐户。
- 单击铅笔图标。
- Select 您希望授予 Cloud Build 服务的角色 帐号。
- 点击保存。
注意:我阅读了重复的问题 post 但在我的情况下
- 我可以推送物品
- 只有构建失败并且我找到的解决方案与任何其他问题的答案都不同
这是一个非常奇怪的问题。存储权限必须是红色鲱鱼,因为这些权限解决了问题
我在某个地方找到了一些文档,我似乎无法在 google github 存储库中找到关于添加这些权限的文档以及关于两个 @cloudbuild.gserviceaccount.com 帐户和你的文档一定要给正确的添加权限!!!!一个归 google 所有,您不应该触摸。
在我的例子中,权限/令牌交换失败错误是由 Google Container Registry 在 VPC 服务边界内使用的存储桶引起的。
这可以通过 VPC 服务控制日志检查/确认 - 从 troubleshooting page.
可以轻松访问有 a (very clunky) way 让 Cloud Build 工作以将图像推送到 VPC 边界内的注册表。它涉及 运行 构建工作池并将适当的配置 + 权限应用于周边等