首页 > 解决方案 > 构建映像时,适用于 Windows 的 Docker 退出并显示代码 127

问题描述

当我尝试构建此 Docker-Image 时,出现以下错误:

日志

FROM java:8

WORKDIR /app

ADD . /app

EXPOSE 8080

RUN ./gradlew build

CMD ./gradlew bootRun

当我只是使用“gradlew build”构建应用程序时,它会运行,当我尝试使用 Mac 运行这个 Docker Image 时,它​​也可以工作,只是不适用于 Windows

编辑:

运行 ls 图像

标签: dockergradledockerfile

解决方案


这不是一个很好的答案,但我发现当 Windows 将文件从 Windows 挂载到 Docker 时,它会在挂载的文件上留下类似 Windows 的行尾。在你的 Dockerfile 中解决它的一个 janky 方法是在容器中安装 dos2unix 并添加一个

RUN dos2unix gradlew

在执行构建过程之前。不幸的是,这是一个糟糕的解决方案。希望即将发布的 WSL2 上的 Docker for Windows 能够更好地解决这个问题,但现在你被这个笨拙的解决方案困住了。


推荐阅读