You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Docker Hub推送镜像至Google Cloud Run时遇未授权错误

解决Google Cloud Run镜像推送未授权问题

核心问题澄清

你检查的service-PROJECT-NUMBER@serverless-robot-prod.iam.gserviceaccount.com权限是Cloud Run拉取镜像时使用的,不是你推送镜像到GCR(Google容器注册表)所需的权限——你的Cloud Shell登录用户本身需要具备GCR的写入权限。

分步解决方案

  • 重新配置Docker与GCR的认证
    放弃手动docker login,直接用gcloud命令自动完成认证配置(Google官方推荐方式):

    gcloud auth configure-docker gcr.io
    

    执行后会自动更新Docker配置文件,关联当前gcloud登录的账号凭证。

  • 检查当前Cloud Shell用户的IAM权限
    确保你的登录账号(对应Cloud Shell的邮箱)拥有以下至少一项权限:

    • roles/containerregistry.admin(容器注册表管理员,全权限)
    • 组合权限:roles/storage.objectCreator + roles/storage.objectViewer(GCR底层依赖GCS存储桶,这两个权限允许写入、查看镜像文件)
      前往IAM页面找到你的账号,添加对应权限后重新尝试推送。
  • 验证项目ID一致性
    确认命令中的PROJECTID是正确的项目ID(不是项目名称),执行以下命令检查当前Cloud Shell绑定的项目:

    gcloud config get-value project
    

    如果不一致,用以下命令切换:

    gcloud config set project YOUR_ACTUAL_PROJECT_ID
    
  • 清理旧认证配置后重试
    如果之前的认证配置存在冲突,先删除Docker配置文件再重新配置:

    rm ~/.docker/config.json
    gcloud auth configure-docker gcr.io
    

    完成后再次执行docker push命令。

  • 跳过手动推送,直接用gcloud部署
    既然控制台创建服务正常,可直接用gcloud命令部署,无需手动tag和push镜像:

    gcloud run deploy ytt --image tzahi12345/youtubedl-material --platform managed --region YOUR_REGION
    

    替换YOUR_REGION为目标区域(如us-central1),该命令会自动拉取Docker Hub镜像并部署到Cloud Run。

内容的提问来源于stack exchange,提问作者backwashphili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:01:15