You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建阶段复制Maven生成Jar文件失败,求排查方案

Docker构建报错:lstat /var/lib/docker/tmp/.../target: no such file or directory 排查方案

核心错误原因

你的builder阶段存在路径逻辑错误:

  • 你将maven构建生成的jar包复制到了容器内的up-user-service/target目录:
    COPY --from=maven_builder /app/target/*.jar up-user-service/target
    
  • 但后续通过ARG JAR_FILE=target/*.jar尝试读取当前工作目录下的target文件夹,而容器默认工作目录是/,这里并没有target目录,因此触发了文件找不到的错误。

修复后的Dockerfile

调整builder阶段的路径逻辑,确保能正确定位到jar包,以下是两种可行方案:

方案1:指定工作目录统一路径

FROM maven:3.8.3-openjdk-17 as maven_builder
WORKDIR /app
COPY up-user-service/pom.xml .
COPY up-user-service/src ./src
RUN mvn clean install
# 后续用--progress=plain参数构建可查看此命令输出
RUN ls -l /app/target

FROM openjdk:17-jdk-alpine as builder
WORKDIR /builder
# 将jar复制到当前工作目录的target子文件夹
COPY --from=maven_builder /app/target/*.jar ./target/
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract

FROM openjdk:17-jdk-alpine
COPY --from=builder /builder/dependencies/ ./
COPY --from=builder /builder/snapshot-dependencies/ ./
COPY --from=builder /builder/spring-boot-loader/ ./
COPY --from=builder /builder/application/ ./
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]

方案2:简化复制逻辑(更推荐)

直接将jar包复制到builder阶段的当前工作目录,省去中间路径:

FROM maven:3.8.3-openjdk-17 as maven_builder
WORKDIR /app
COPY up-user-service/pom.xml .
COPY up-user-service/src ./src
RUN mvn clean install

FROM openjdk:17-jdk-alpine as builder
COPY --from=maven_builder /app/target/*.jar application.jar
RUN java -Djarmode=layertools -jar application.jar extract

FROM openjdk:17-jdk-alpine
COPY --from=builder dependencies/ ./
COPY --from=builder snapshot-dependencies/ ./
COPY --from=builder spring-boot-loader/ ./
COPY --from=builder application/ ./
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]

查看ls命令输出的方法

构建时添加--progress=plain参数,即可查看所有RUN命令的详细输出,包括ls -l /app/target的内容:

docker build --progress=plain -t your-image-name .

内容的提问来源于stack exchange,提问作者Sumit Desai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 07:23:23