我的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!=服务(