当我尝试构建此Docker-Image时,出现以下错误:
FROM java:8
WORKDIR /app
ADD . /app
EXPOSE 8080
RUN ./gradlew build
CMD ./gradlew bootRun
当我使用" gradlew build"构建应用程序时它运行,当我尝试用Mac运行这个Docker镜像时,它也可以,但不适用于Windows
编辑:
答案 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可以更好地解决此问题,但现在您仍然受困于这种笨拙的解决方案。