Gcloud和Docker部署Cloud Run时镜像不存在报错问题求助
Cloud Run部署问题解决方案
核心错误原因
你出现所有报错的核心原因是镜像仓库路径拼写不一致:
- 本地已构建的镜像路径为
gcr.io/prod-stock-bot/stockstuff - 你执行
docker push和gcloud run deploy时错误填写为gcr.io/prod-stockstuff-bot/stockstuff,多了stuff字段,导致Docker找不到本地镜像、Cloud Run找不到未上传的远端镜像。
解决方案
方案1:使用已构建的本地镜像部署
- 推送本地已有的正确镜像到GCR:
docker push gcr.io/prod-stock-bot/stockstuff:latest
- 执行正确的部署命令,镜像路径和你push的路径保持一致:
gcloud run deploy stockstuff --project prod-stock-bot --region us-west1 --image gcr.io/prod-stock-bot/stockstuff:latest --platform managed
方案2:无需提前构建镜像,直接从源码部署
你之前参考Java示例报错的原因是没有指定构建源参数,在部署命令末尾添加源码路径即可,gcloud会自动完成镜像构建、上传、部署全流程:
gcloud run deploy stockstuff --project prod-stock-bot --region us-west1 --platform managed --source .
注:该命令会自动识别项目中的Dockerfile,或使用对应语言的官方构建包完成镜像构建,不需要你手动执行Gradle构建镜像的操作。
前置校验项
执行部署前请确认满足以下条件:
- 已通过
gcloud auth login登录有权限访问prod-stock-bot项目的Google账号 - 已启用Container Registry、Cloud Run相关API,执行命令时若提示未启用,输入
Y确认自动启用即可
内容的提问来源于stack exchange,提问作者Dean Hiller
相关产品推荐
相关产品推荐

