在多阶段 docker 构建中获取错误"COPY failed: stat /home/app/target/Service.jar : file does not exist"



我的Docker文件是

FROM maven:3.6.0-jdk-11-slim AS build
COPY src /home/app/src
COPY pom.xml /home/app
RUN mvn -f /home/app/pom.xml clean package

FROM openjdk:11-jre-slim
COPY --from=build /home/app/target/Service.jar /usr/local/lib/Service.jar
EXPOSE 8081
ENTRYPOINT ["java","-jar","/usr/local/lib/service.jar"]

当执行COPY-from行时,得到一个错误";复制失败:stat/home/app/target/Service.jar:文件不存在"。

注意:当我们执行";RUN ls/home/app";命令,其列出的文件和目标目录。

有人能帮忙吗。

您的pom中定义了finalName吗?

<build>
<finalName>${project.artifactId}</finalName>
<plugins>
...

如果没有,则生成的工件将在名称中具有版本控制,并且不会被称为Service.jar,而是类似于Service-1.0-SNAPSHOT.jar

FROM maven:3.6.0-jdk-11-slim AS build
COPY src /home/app/src
COPY pom.xml /home/app/pom.xml
WORKDIR /home/app
RUN mvn clean package

FROM openjdk:11-jre-slim
COPY --from=build /home/app/target/Service_AND_VERSION_STUFF.jar /usr/local/lib/Service.jar
EXPOSE 8081
ENTRYPOINT ["java","-jar","/usr/local/lib/Service.jar"]

不要忘记始终使用相同的外壳(Sevice!=服务(

相关内容

  • 没有找到相关文章