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

使用Docker在Render部署Spring Boot应用遇lstat文件不存在错误

解决Docker部署Spring Boot到Render时的target目录不存在错误

错误原因

这个lstat /home/user/.local/tmp/buildkit-mount619141597/target: no such file or directory错误的核心问题是maven构建阶段的target目录路径不对。在maven-builder阶段,你把pom.xml放到了/app目录,执行mvn package时,构建产物会生成在/app/target下,而非镜像根目录的/target。但后续COPY步骤里你写的是target/*.jar,Docker会去根目录查找该目录,自然找不到。

修正后的Dockerfile

FROM maven:3.8.4-openjdk-17 as maven-builder
# 先复制pom.xml,利用Docker缓存优化构建速度
COPY pom.xml /app/
COPY src /app/src/

# 切换到/app目录执行构建,确保target生成在正确路径
RUN cd /app && mvn clean package -DskipTests

FROM openjdk:17-alpine
# 从构建阶段的正确路径复制jar包
COPY --from=maven-builder /app/target/*.jar /app-service/godelivery.jar
WORKDIR /app-service

EXPOSE 8080
ENTRYPOINT ["java","-jar","godelivery.jar"]

关键调整说明

  • 修正COPY路径:将COPY --from=maven-builder target/*.jar改为/app/target/*.jar,指向maven实际生成产物的目录。
  • 优化构建缓存:先复制pom.xml再复制src目录,这样当pom.xml未修改时,maven依赖下载的镜像层会被缓存,加快后续构建速度。
  • 移除无用命令:原Dockerfile中的RUN "ls"对构建无实际帮助,还会增加镜像层数,建议删除。

额外注意点

  • 确认项目根目录下确实存在pom.xml和src目录,Render平台拉取代码时能正确获取到这些文件。
  • 如果Spring Boot项目打包后的jar包名称不是默认格式,可以明确指定文件名(比如/app/target/your-app-name-*.jar),避免匹配错误。

内容的提问来源于stack exchange,提问作者Armando Microsse

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 00:01:12