Rest Docker-复制JAR文件:没有这样的文件或目录?

Rest Docker-复制JAR文件:没有这样的文件或目录?,rest,spring-boot,docker,gradle,jar,Rest,Spring Boot,Docker,Gradle,Jar,对于一个非常简单的spring-bootREST应用程序,我有以下Dockerfile: # Prepare runtime. FROM openjdk:8-jre-alpine AS runtime WORKDIR /app EXPOSE 80 # Prepare build workspace. FROM gradle:5.3.0-jdk-alpine AS sdk WORKDIR /build-workspace # Setup build workspace. USER root R

对于一个非常简单的
spring-boot
REST应用程序,我有以下
Dockerfile

# Prepare runtime.
FROM openjdk:8-jre-alpine AS runtime
WORKDIR /app
EXPOSE 80

# Prepare build workspace.
FROM gradle:5.3.0-jdk-alpine AS sdk
WORKDIR /build-workspace

# Setup build workspace.
USER root
RUN chown -R gradle .
USER gradle

# Copy.
COPY build.gradle .
COPY gradle.properties .
COPY src ./src

# Build, Test and publish.
RUN gradle clean bootJar

# App image.
FROM runtime
COPY --from=sdk /build-workspace/build/libs/myApplication-0.0.1-SNAPSHOT.jar ./app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
我的docker文件位于项目的根目录中,在
build.gradle
等旁边

当我跑步时:

docker build -t myApplication .
我得到一个错误:

步骤14/15:复制--from=sdk /构建工作区/build/libs/myApplication-0.0.1-SNAPSHOT.jar./app.jar 复制失败:stat/var/lib/docker/overlay2/e9441fe0b968bd5776ee860bbca780d6c2037fcf90cb67d01c3b1fd349d3996f/merged/build workspace/build/libs/myApplication-0.0.1-SNAPSHOT.jar: 没有这样的文件或目录


我在docker文件中做错了什么?

您可以在
运行gradle clean bootJar
之后添加
运行ls-l/build workspace/build/libs/
,查看该目录中的内容

请您尝试在本地构建jar并使用docker文件复制它好吗?只是为了确保gradle clean bootJar不会失败?一切看起来都很好,唯一的原因似乎是没有jar,这可能是因为jar构建步骤不起作用。此步骤的输出是什么运行gradle clean BootJAR
docker build
序列还将打印出一系列十六进制数;这些是有效的映像ID,您可以
docker运行其中任何一个
来查看正在生成的映像中的内容。@GAK gradle clean bootJar按预期运行良好,它只在复制时失败。我知道bootJar命令运行良好。但是它在哪里创建文件呢。“复制”命令无法到达该位置。这就是为什么我想要buildjar命令的输出。