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

Spring Boot容器启动后立即关闭问题求助

Spring Boot容器启动后立即关闭问题排查

问题现象

构建Docker镜像后运行容器,容器启动后立刻关闭,日志仅输出:

[SpringApplicationShutdownHook] DEBUG org.springframework.context.annotation.AnnotationConfigApplicationContext - Closing org.springframework.context.annotation.AnnotationConfigApplicationContext

Dockerfile内容:

FROM openjdk:17-alpine
ARG JAR_FILE=target/*.jar
ADD ./target/registereureka.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

排查与解决步骤

1. 先验证本地JAR包运行状态

直接在宿主机执行 java -jar target/registereureka.jar,确认应用本身能否正常启动:

  • 如果本地也启动后立刻退出,说明问题出在Spring Boot应用本身:检查配置文件是否打包进JAR包,若为Web应用需确认spring-boot-starter-web依赖是否存在,若为命令行应用则属于正常执行完任务退出的情况。
  • 如果本地运行正常,再聚焦Docker环境排查。

2. 检查镜像内JAR包完整性

构建镜像后进入容器,验证JAR包内容是否完整:

# 启动容器进入交互模式
docker run -it --entrypoint sh [你的镜像ID/名称]
# 查看JAR包内文件列表
jar tf /app.jar

确认配置文件、核心类文件都存在,避免打包时遗漏资源。

3. 开启详细日志定位问题

修改Docker启动命令,提升日志级别,获取更多启动细节:

FROM openjdk:17-alpine
ARG JAR_FILE=target/*.jar
ADD ./target/registereureka.jar app.jar
ENTRYPOINT ["java","-Dlogging.level.root=INFO","-jar","/app.jar"]

或临时在运行容器时添加参数:

docker run [镜像名] java -Dlogging.level.root=INFO -jar /app.jar

通过完整日志排查是否有初始化失败、依赖缺失等报错。

4. 尝试更换基础镜像

OpenJDK Alpine版本可能存在依赖缺失问题,若应用涉及Web服务或JNI调用,可替换为非Alpine镜像测试:

FROM openjdk:17-slim
ARG JAR_FILE=target/*.jar
ADD ./target/registereureka.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

5. 确认容器环境变量配置

若应用依赖环境变量加载配置,检查容器运行时是否传入必要参数:

docker run -e SPRING_PROFILES_ACTIVE=prod [镜像名]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:22:12