无法使用 docker build 运行 gradle 包装器

Tob*_*biq 5 java gradle docker

我有这个小构建:

FROM eclipse-temurin:17-jdk as build-java
COPY java-project /root/project
WORKDIR /root/project
RUN chmod +x ./gradlew
RUN ls
RUN ./gradlew ...
Run Code Online (Sandbox Code Playgroud)
#9 [build-build-java 5/6] RUN ls
#9 sha256:2d05b1e31ea4eaa8a9343b4f48fadcf7351b9d55dcc9c27e572d7bb32c4d723c
#9 0.194 build
#9 0.194 build.gradle
#9 0.194 docker-compose.yml
#9 0.194 gradle
#9 0.194 gradlew
#9 0.194 gradlew.bat
#9 0.194 HELP.md
#9 0.194 lombok.config
#9 0.194 settings.gradle
#9 0.194 src
#9 DONE 0.2s

#10 [build-build-java 6/6] RUN ./gradlew ...
#10 sha256:62cb4a1a6288008f3faccc3504e63ef87d30c3d7fde904a0576ffcf571e9b310
#10 0.310 /bin/sh: 1: ./gradlew: not found
#10 ERROR: executor failed running [/bin/sh -c ./gradlew ...]: exit code: 127

Run Code Online (Sandbox Code Playgroud)

我已经被困在这个问题上有一段时间了。

我尝试FROM gradle先使用,然后再使用gradle ...,但随后出现此文件安装错误:

#10 sha256:26de7798a76971c3eb12e6398f830ee487fe41c110d0f8ca6a23a92ee5437267
#10 0.854 
#10 0.854 Welcome to Gradle 7.3.3!
#10 0.854
#10 0.854 Here are the highlights of this release:
#10 0.854  - Easily declare new test suites in Java projects
#10 0.855  - Support for Java 17
#10 0.855  - Support for Scala 3
#10 0.855
#10 0.855 For more details see https://docs.gradle.org/7.3.3/release-notes.html
#10 0.855
#10 0.952 Starting a Gradle Daemon (subsequent builds will be faster)
#10 2.153 Unable to list file systems to check whether they can be watched. Assuming all file systems can be watched. Re
ason: Could not query file systems: could not open mount file (errno 2: No such file or directory)

Run Code Online (Sandbox Code Playgroud)

MHM*_*MHM 6

我在Windows环境下也遇到了同样的问题。正如@thokuest指出的,这是根据\rbash 脚本中的回车符 ( ) 行结尾发生的。但是您应该考虑到,当您将IntelliJ 中的行结尾更改为from时,容器中的文件不会相应更改,而是从您之前的命令缓存。所以你应该运行这个命令:LFCLRFgradlewdocker build .

docker build --no-cache .

或者:

docker build --no-cache --progress=plain .如果你想看到完整的输出。


tho*_*est 2

/bin/sh: 1: ./gradlew: not found\r通常是由bash 脚本中的回车符 ( ) 行结尾引起的。删除回车符很可能会解决该问题。