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

Docker化Maven Spring Boot应用遇release version 21不支持错误

解决方案:适配Java 21的Dockerfile调整

你的核心问题是Docker构建阶段和运行阶段使用的JDK/JRE版本与项目要求的Java 21不匹配:

  • 构建阶段用的maven:3.8.4-jdk-11是JDK 11,无法编译Java 21版本的代码
  • 运行阶段用的openjdk:8-jre-alpine是JRE 8,Spring Boot 3.x要求最低Java 17,根本跑不了你的应用

步骤1:修改Dockerfile

将Dockerfile替换为以下内容,确保构建和运行环境都适配Java 21:

# 构建阶段:使用支持Java 21的Maven镜像
FROM maven:3.9.6-eclipse-temurin-21 AS build

COPY src /app/src
COPY pom.xml /app

WORKDIR /app
RUN mvn clean install -U

# 运行阶段:使用轻量的Java 21 JRE镜像
FROM eclipse-temurin:21-jre-alpine
COPY --from=build /app/target/mal-randomizer-0.0.1-SNAPSHOT.jar /app/app.jar

WORKDIR /app

EXPOSE 8080

CMD ["java", "-jar", "app.jar"]

步骤2:确认pom.xml配置无需额外修改

你的pom.xml已经正确配置了Java 21:

  • <java.version>21</java.version> 符合Spring Boot 3.2.5的要求
  • 依赖的Spring Boot 3.2.5原生支持Java 17-21,兼容你用到的Java 16 records特性

验证方法

执行以下命令重新构建镜像并运行:

docker build -t mal-randomizer .
docker run -p 8080:8080 mal-randomizer

内容的提问来源于stack exchange,提问作者Victor Fernandes Neto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:05:22