在构建映像时,Docker for Windows以代码127退出

时间:2018-05-29 12:50:11

标签: docker gradle dockerfile

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

Log

FROM java:8

WORKDIR /app

ADD . /app

EXPOSE 8080

RUN ./gradlew build

CMD ./gradlew bootRun

当我使用" gradlew build"构建应用程序时它运行,当我尝试用Mac运行这个Docker镜像时,它也可以,但不适用于Windows

编辑:

RUN ls Image

2 个答案:

答案 0 :(得分:0)

必须将

gradlew标记为可执行文件。

chmod +x gradlew

Mac和Linux共享权限方案,但Windows需要使用虚拟FS,因此它使用默认权限复制文件 - 644,您需要755。

答案 1 :(得分:0)

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

RUN dos2unix gradlew

在执行构建过程之前。不幸的是,这是一个可怕的解决方案。希望原定于不久后发布的WSL2上的Windows版Docker可以更好地解决此问题,但现在您仍然受困于这种笨拙的解决方案。