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

使用Docker Compose部署应用报错:无法访问jarfile api-0.0.1-SNAPSHOT.jar

问题解决:Docker部署报错"Error: Unable to access jarfile api-0.0.1-SNAPSHOT.jar"

问题原因分析

你的配置存在两个核心问题导致jar包无法被找到:

  1. 挂载卷覆盖容器目录:docker-compose.yml中配置的volumes: - ./app:/app会将宿主机当前目录下的./app文件夹挂载到容器的/app目录,直接覆盖了Dockerfile中复制到/app的jar包。若宿主机的./app为空,容器内自然找不到目标jar文件。
  2. 启动命令被覆盖:docker-compose里的command: tail -f /dev/null会替换Dockerfile中定义的ENTRYPOINT,即便jar包存在,容器也不会执行启动jar的命令。

修复步骤

1. 修改docker-compose.yml配置

更新后的配置如下:

version: '3.8'
services:
  webserver:
    build: .
    ports:
      - "9090:8080"
    # 移除覆盖/app目录的挂载卷,若需挂载日志等文件,改为挂载子目录
    # 示例:- ./logs:/app/logs
    restart: always
    # 移除覆盖ENTRYPOINT的command配置

2. 重新部署容器

执行以下命令清理旧容器并重新构建启动:

docker compose down
docker compose up -d --build

3. 验证部署结果

查看容器日志确认应用是否正常启动:

docker compose logs webserver

额外验证(可选)

若要确认Dockerfile本身是否能正确生成包含jar的镜像,可单独构建并测试:

docker build -t my-api-image .
docker run --rm my-api-image

如果该命令能正常输出应用启动日志,说明Dockerfile的构建流程无问题,问题确实出在docker-compose的配置上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:37:35