Java 在多阶段docker构建中复制jar文件时,我找不到它

Java 在多阶段docker构建中复制jar文件时,我找不到它,java,spring-boot,docker,gradle,dockerfile,Java,Spring Boot,Docker,Gradle,Dockerfile,所以我是docker的新手,我一直在尝试将我的spring boot应用程序docker化。我设法让它与给定的JAR文件一起工作,但现在我想使用gradle进行多阶段构建来构建JAR文件,这样我就不必在运行docker build{app name}之前手动生成JAR 这是我当前的设置。它找不到jar文件,我不知道除了在dockerfile中运行shell命令来打印文件和文件夹外,如何导航文件系统来找到它 COPY指令需要从gradle的build/libs/目录中进行复制,该目录是构建工件的默

所以我是docker的新手,我一直在尝试将我的spring boot应用程序docker化。我设法让它与给定的JAR文件一起工作,但现在我想使用gradle进行多阶段构建来构建JAR文件,这样我就不必在运行docker build{app name}之前手动生成JAR

这是我当前的设置。它找不到jar文件,我不知道除了在dockerfile中运行shell命令来打印文件和文件夹外,如何导航文件系统来找到它

COPY指令需要从gradle的build/libs/目录中进行复制,该目录是构建工件的默认位置——目前它正在项目根目录中查找JAR。这应该起作用:

COPY-from=build/home/gradle/src/build/libs/app-name.jar/usr/app


这假定Dockerfile位于项目的根目录中。如果不是,则需要相应地调整dockerfile中使用的复制路径

为什么你不能按照你的建议运行,比如在Dockerfile中查找,以确定gradle构建的JAR文件的名称和路径?欢迎使用StackOverflow。尽可能避免使用图像,将设置添加为文本,并尝试创建一个最小的示例。有关详细信息,请参阅。@hmm我实际上没有想到使用find命令。令人尴尬的是,我只是在运行cd-lib | ls之类的命令。谢谢你的建议。@JeroenHeier谢谢你的链接,我以前从未在这里发布过。我会看一看的!
FROM gradle:jdk8 as build

COPY --chown:gradle:gradle . /home/gradle/src

WROKDIR /home/gradle/src 

RUN gradle clean build --parallel

FROM  openjdk:8-alpine

WORKDIR /usr/app

COPY --from=build /home/gradle/src/app-name.jar /usr/app/

RUN sh -c 'touch app-name.jar'

ENTRYPOINT ["java", "-jar", "app-name.jar"]
Step 7/9. : COPY —from=build /home/gradle/src/app-name.jar /usr/app/
COPY failed: stat /var/lib/ldocker/overlay2/22e326d9f26f581a629417c35e226428f3cc63fd496799c55dde4be413ca26690/merged/home/gradle/src/app-name.jar: no such file or directory