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

Windows下Docker构建失败:./mvnw解释器错误(退出码126)求解决方案

解决Windows 10下构建Docker镜像时mvnw脚本的换行符错误

构建时出现如下错误:

#0 0.385 /bin/sh: ./mvnw: /bin/sh^M: bad interpreter: No such file or directory
------
failed to solve: executor failed running [/bin/sh -c ./mvnw install -DskipTests]: exit code: 126

错误原因

Windows系统默认使用CRLF(回车+换行)作为文本文件的换行符,而Linux容器中的bash仅识别LF(换行)。mvnw脚本在Windows环境下被保存为CRLF格式,导致容器执行时将末尾的^M(即CR字符)视为命令的一部分,从而找不到正确的解释器路径。

解决方法

方法1:调整Git配置避免换行符问题(推荐)

  • 设置Git全局配置,提交时自动将CRLF转换为LF:
    git config --global core.autocrlf input
    
  • 对于已克隆的仓库,重新检出文件以应用LF格式:
    git rm --cached -r .
    git reset --hard
    
  • 重新执行Docker构建命令即可。

方法2:直接转换mvnw脚本的换行符

  • 在Git Bash中执行以下命令,移除mvnw脚本中的CR字符:
    sed -i 's/\r$//' mvnw
    
  • 若Git Bash中没有sed,也可以使用dos2unix工具(先安装:sudo apt-get install dos2unix):
    dos2unix mvnw
    
  • 转换完成后重新构建镜像。

方法3:在Dockerfile中添加预处理步骤

  • 修改Dockerfile,在执行mvnw命令前先处理换行符:
    # 先转换mvnw的换行符
    RUN sed -i 's/\r$//' mvnw
    # 再执行构建命令
    RUN ./mvnw install -DskipTests
    
  • 保存Dockerfile后重新构建镜像。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 08:03:56