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

Docker Compose中Server容器无法启动问题排查求助

问题:Docker Compose中Server容器启动后立即退出,仅Client容器正常运行

问题描述

使用Docker Compose配置拉取client和server两个镜像,镜像拉取正常,client容器启动无异常,但server容器无法正常运行。执行docker-compose up -d后显示server已启动,但docker ps仅能看到client容器。

相关配置

Server的Dockerfile

FROM docker.io/library/gradle:7.5.1-jdk17 AS builder

# 设置容器内工作目录
WORKDIR /app

# 将源码复制到容器工作目录
COPY build.gradle settings.gradle /app/
COPY gradle /app/gradle
COPY src /app/src

# 构建应用(跳过测试)
RUN gradle clean build -x test --no-watch-fs

FROM docker.io/library/eclipse-temurin:17-jdk

WORKDIR /app

COPY --from=builder /app/build/libs/server.jar server.jar

ENTRYPOINT ["java", "-jar", "server.jar"]

docker-compose.yml

version: "3.8"
services:
  client:
    image: xxx/react-frontend:latest
    ports:
      - 444:80
    env_file:
      - .env.production

  server:
    image: xxx/server:latest
    ports:
      - 8444:8444
    environment:
      SPRING_PROFILES_ACTIVE: prod

启动日志

xxx-server-1  | Sep 05, 2023 3:38:06 PM java.util.prefs.FileSystemPreferences$1 run
xxx-server-1  | INFO: Created user preferences directory.
xxx-server-1  | |  Welcome to JShell -- Version 17.0.8
xxx-server-1  | |  For an introduction type: /help intro
xxx-server-1  |

问题定位与解决步骤

核心问题

日志出现Welcome to JShell,说明Java没有执行server.jar,反而进入了交互式JShell环境。大概率是server.jar不存在、路径错误,或者jar包本身不是可执行的Spring Boot应用包。

排查与修复

  1. 验证容器内jar包状态

    • 手动启动容器进入终端检查:
      docker run -it --rm xxx/server:latest bash
      
    • 执行ls /app确认server.jar是否存在;再执行java -jar server.jar,观察启动报错信息。
  2. 修正Dockerfile的jar包匹配
    如果Gradle构建生成的jar包带版本号(如server-1.0.0.jar),修改COPY命令用通配符匹配:

    COPY --from=builder /app/build/libs/server-*.jar server.jar
    
  3. 检查Gradle构建配置
    确认项目中已引入spring-boot-gradle-plugin,确保构建出可执行的Spring Boot jar包。可在构建阶段添加日志验证:

    RUN gradle clean build -x test --no-watch-fs && ls -la /app/build/libs/
    
  4. 查看容器退出详情

    • 执行docker ps -a查看server容器的退出码,非0码说明启动失败:
      docker ps -a | grep server
      
    • 查看完整容器日志:
      docker logs xxx-server-1
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 11:11:32