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

在Google Cloud Run部署Java SpringBoot项目遇权限拒绝问题求助

解决Cloud Run部署Java项目时mvnw权限拒绝问题

问题分析

错误提示fork/exec ./mvnw: permission denied的核心原因是项目中的mvnw脚本缺少可执行权限——即便本地设置了权限,也可能因为Git未追踪权限变更、Cloud Build环境配置等问题导致失效。

解决方案

1. 让Git追踪mvnw的可执行权限

Git默认不会追踪文件的执行权限变更,需要手动指定:

  • 本地终端执行:
    chmod +x mvnw
    git update-index --chmod=+x mvnw
    
  • 提交并推送到GitHub:
    git add mvnw
    git commit -m "Add executable permission to mvnw"
    git push
    

2. 在Cloud Build步骤中提前设置权限

修改你的cloudbuild.yaml,添加一个前置步骤给mvnw赋予权限:

steps:
- name: 'ubuntu'
  args: ['chmod', '+x', './mvnw']
- name: 'gcr.io/cloud-builders/mvn'
  args: ['clean', 'install', '-DskipTests']
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['run', 'deploy', 'favdoctorapi', '--image', 'gcr.io/$PROJECT_ID/favdoctorapi', '--platform', 'managed', '--region', 'us-central1']
  dir: './'

3. 强制行尾格式为LF

在项目根目录创建或修改.gitattributes文件,添加以下内容避免行尾格式干扰脚本执行:

mvnw text eol=lf
*.sh text eol=lf

提交并推送该文件到仓库。

4. 跳过mvnw,直接使用Maven镜像命令

如果上述方法都无效,可以放弃使用项目中的mvnw,直接用Cloud Build Maven镜像自带的mvn命令:

steps:
- name: 'gcr.io/cloud-builders/mvn'
  args: ['clean', 'install', '-DskipTests', '-f', 'pom.xml']
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['run', 'deploy', 'favdoctorapi', '--image', 'gcr.io/$PROJECT_ID/favdoctorapi', '--platform', 'managed', '--region', 'us-central1']
  dir: './'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:55:25