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

使用Docker容器化Spring Boot应用时提示找不到jar文件问题求助

问题原因

  • Dockerfile配置错误
    1. COPY指令语法错误:你当前写的COPY ${JAR_FILE} rtv-1.jar /app表示要同时复制${JAR_FILE}匹配到的所有文件、以及当前构建上下文里的rtv-1.jar两个源到/app目录下,如果你的构建上下文里没有独立的rtv-1.jar文件,或者你原本的需求是将匹配到的jar重命名为rtv-1.jar,这个写法都不满足要求。
    2. ENTRYPOINT路径错误:你将jar包复制到了/app目录下,但ENTRYPOINT中指定的jar路径是根目录下的/rtv-1.jar,根目录下不存在该文件,自然会抛出找不到的错误。
  • docker-compose配置错误
    1. volumes挂载覆盖了容器内目录:你配置了本地目录挂载到容器的/app路径,这会直接覆盖镜像构建阶段复制到/app目录下的所有内容,如果本地挂载的目录中没有rtv-1.jar,容器运行时自然找不到文件。
    2. volumes语法错误:你填写的挂载路径absolutepathtothedircontaining "rtv-1":/app存在未转义的空格、引号位置错误的问题,本身就是无效配置。

修复方案

  1. 修正Dockerfile配置,参考如下:
FROM adoptopenjdk:16-jre-hotspot
RUN mkdir -p /app
WORKDIR /app
ARG JAR_FILE=*.jar
# 将构建上下文中匹配到的jar包重命名为rtv-1.jar放入/app目录
COPY ${JAR_FILE} /app/rtv-1.jar
# 填写正确的jar包路径
ENTRYPOINT ["java", "-jar", "/app/rtv-1.jar"]
  1. 修正docker-compose.yml配置:
  • 除非你有本地开发热部署的需求,否则直接删除volumes配置项即可,该挂载是导致jar包被覆盖的核心原因。
  • 如果你确实需要保留挂载,请确保本地路径是包含rtv-1.jar的完整绝对路径,且语法正确,示例:- /home/user/your-project/target:/app
  1. 修复完成后执行以下命令重新构建启动即可:
docker-compose build --no-cache
docker-compose up

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:24:03