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

Dockerfile执行RUN ./mvnw报错/bin/sh:1:./mvnw:not found,求排查

解决./mvnw: not found错误的几个方案

你的Dockerfile核心逻辑没问题,但出现这个错误通常是以下几个原因导致的,对应修复方法如下:

1. 给mvnw添加执行权限

mvnw脚本需要可执行权限才能运行,Docker的COPY指令默认不会保留文件的执行权限(Docker 20.10+版本可通过--chmod参数直接设置)。在执行./mvnw前添加权限赋予命令:

COPY mvnw ./
RUN chmod +x ./mvnw  # 添加这一行赋予执行权限
RUN ./mvnw clean install

2. 修复Windows换行符问题

如果你的代码是在Windows系统下编写或克隆的,mvnw文件的换行符可能是CRLF(Windows格式),而Linux容器仅支持LF格式。可以启用你注释掉的dos2unix命令,但需要先安装该工具:

USER root  # 临时切换回root用户安装工具
RUN apt-get update && apt-get install -y dos2unix
USER demo  # 切回demo用户
RUN dos2unix ./mvnw
RUN ./mvnw clean install

也可以提前在本地配置Git,拉取代码时自动转换换行符:

git config --global core.autocrlf input

这样拉取的shell脚本会自动使用LF格式。

3. 验证文件是否正确复制

可以在执行./mvnw前添加命令,确认文件是否存在于目标目录:

RUN ls -la ./  # 查看当前目录文件,确认mvnw存在
RUN ./mvnw clean install

另外注意:你Dockerfile中RUN ./mvnw clean install后面的<-- this line gives error不属于合法注释,需要改成#开头的注释,否则会导致Dockerfile语法错误:

RUN ./mvnw clean install  # 这一行报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:40:27