gradle Docker for Windows在构建镜像时退出代码127

gk7wooem  于 2023-06-30  发布在  Docker
关注(0)|答案(3)|浏览(167)

当我尝试构建这个Docker-Image时,我得到以下错误:

FROM java:8

WORKDIR /app

ADD . /app

EXPOSE 8080

RUN ./gradlew build

CMD ./gradlew bootRun

当我使用“gradlew build”构建应用程序时,它可以运行,当我尝试在Mac上运行此Docker Image时,它也可以运行,只是不适用于Windows
编辑:

kulphzqa

kulphzqa1#

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

RUN dos2unix gradlew

在执行构建过程之前。不幸的是,这是一个可怕的解决方案。希望即将发布的Docker for Windows on WSL2能更好地解决这个问题,但现在你只能使用这个简单的解决方案。

cgvd09ve

cgvd09ve2#

gradlew必须标记为可执行。
chmod +x gradlew
Mac和Linux共享权限方案,但Windows需要使用虚拟FS,因此它使用默认权限复制文件- 644,而您需要755。

wfypjpf4

wfypjpf43#

对我有用,在dockerfile中,在RUN ./gradlew lib:build之前添加:

RUN apt-get update && \
    apt-get install dos2unix && \
    apt-get clean
RUN dos2unix gradlew
RUN chmod +x gradlew
RUN ./gradlew lib:build

相关问题