“获取错误”;复制失败:stat/home/app/target/Service.jar:文件不存在;在多级docker构建中
我的Docker文件是“获取错误”;复制失败:stat/home/app/target/Service.jar:文件不存在;在多级docker构建中,docker,gitlab,dockerfile,gitlab-ci,docker-registry,Docker,Gitlab,Dockerfile,Gitlab Ci,Docker Registry,我的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 EXPOS
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行时,出现错误“COPY failed:stat/home/app/target/Service.jar:文件不存在”
注意:当我们执行“runls/home/app”命令时,它的列表文件和目标目录
有人可以帮忙吗。您的pom中是否定义了
最终名称
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
...
不要忘记始终使用相同的大小写(服务!=服务)文件不存在。您可以在运行mvn-f…
之后运行ls-lisa/home/app/target
,以列出target
文件夹的内容。当我们执行“RUN ls/home/app”命令时,其列表文件和目标目录。它是否在/home/app/target
中列出Service.jar
?对,那么target
目录是否有Service.jar
文件(我想是从运行ls/home/app/target
),我们不应该发布推测性的答案。我们应该在评论中要求澄清。@Turing85我通常同意,但我确信答案是朝着这个方向发展的……如果OP已经确定了最终名称,然后发布答案,那么在评论中首先这样做还是没有坏处的。此外,我建议不要更改finalName
,而是修改dockerfile,下次thx会这样做
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"]