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

本地构建微服务应用时Dockerfile执行./gradlew报错找不到文件

解决 ./gradlew: not found 报错的方案
  • 修复gradlew执行权限:在本地项目的src/adservice目录下执行

    chmod +x gradlew
    

    Windows系统克隆项目时,Linux/Unix的文件执行权限会丢失,导致容器内无法运行脚本,给文件加上可执行权限后再重新运行skaffold run。

  • 验证Dockerfile的文件复制逻辑:检查src/adservice/Dockerfile中的COPY指令,确保它将本地目录下的所有文件(包括gradlew)完整复制到容器工作目录。正常情况下应该有COPY . .这样的指令,如果路径配置错误,会导致gradlew未被复制到容器内。

  • 容器内手动排查:临时修改Dockerfile,在执行./gradlew的步骤前添加调试命令:

    RUN ls -la
    RUN which bash
    

    重新构建后查看输出,确认gradlew是否存在、权限是否正确,同时验证容器内是否安装了bash(gradlew脚本开头指定了#!/bin/bash,部分轻量基础镜像可能仅包含sh,会导致脚本无法正常解析)。

  • 重新克隆项目时禁用自动换行符转换:之前使用core.autocrlf=true会将脚本的换行符转为Windows格式,尝试用以下命令重新克隆:

    git clone https://github.com/GoogleCloudPlatform/microservices-demo.git --config core.autocrlf=false
    

    克隆完成后直接运行skaffold run,避免换行符格式问题干扰脚本执行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:05:18