SpringBoot Java参数配置优先级

JDK 版本选择

case

FROM mirrors.xxx.com/ci/alpine_linux:latest

# Install jdk21
WORKDIR /tmp/jdk21
ADD jdk_21.tar.gz /usr/local/java
RUN ln -s /usr/local/java/jdk_21  /usr/local/java/jdk
ENV JAVA_HOME /usr/local/java/jdk
ENV PATH ${JAVA_HOME}/bin:$PATH

# install maven
 RUN wget -q <https://mirrors.xxx.com/apache-maven-3-bin.zip> && \\
    unzip -qd /opt/ apache-maven-3-bin.zip

WORKDIR /tmp

docker build -t xxxx -f ./Dockerfile .

Amazon Corretto 和 Eclipse Temurin

方面 变体 A (Amazon Corretto 基础) 变体 B (Eclipse Temurin 基础) 主要区别
构建阶段镜像 maven:3.9.6-amazoncorretto-21 AS builder maven:3.9.6-eclipse-temurin-21 AS builder JDK 提供者不同:Amazon Corretto(AWS 官方 OpenJDK 发行版) vs Eclipse Temurin(Adoptium 的 OpenJDK 发行版)。Maven 版本均为 3.9.6,JDK 均为 Java 21。
运行阶段镜像 amazoncorretto:21-alpine eclipse-temurin:21-jre-alpine 运行时类型不同:完整 JDK (Corretto) vs JRE(仅运行时,Temurin)。两者均基于 Alpine Linux(轻量级发行版)。
JDK 版本 Java 21 (Amazon Corretto) Java 21 (Eclipse Temurin) 版本相同,但 Corretto 优化了 AWS 环境,Temurin 更通用/社区导向。
Linux 基础 Alpine Linux (在两个阶段均使用) Alpine Linux (在两个阶段均使用) 相同:Alpine 提供更小的镜像大小(~5MB 基础),适合生产部署。
镜像大小估算 构建阶段:~800MB
运行阶段:~200MB 构建阶段:~750MB
运行阶段:~150MB Temurin JRE 更轻量(无开发工具),整体镜像更小。
适用场景 AWS 生态(如 ECS/EKS),需要完整 JDK 工具链 通用部署(如 Kubernetes),追求最小化运行时镜像 Corretto 适合 AWS 优化;Temurin 更灵活,JRE 减少安全表面。
潜在优势 内置 AWS 性能调优,易集成 AWS 服务 开源社区支持强,JRE 减少漏洞暴露,镜像更小 取决于环境:AWS 用户选 A,非 AWS 选 B 以节省资源。
方面 Amazon Linux 2023 (AL2023) Alpine Linux (Eclipse Temurin Alpine 变体) 主要影响
基础设计 基于 Fedora/CentOS Stream 9,RPM-based 通用服务器发行版。 独立发行版,轻量级容器优先;使用 BusyBox(多合一工具集)。 Alpine 启动更快、资源占用低;AL2023 更像标准 Linux,易移植传统应用。
包管理 dnf/yum(兼容 RPM,包丰富,易管理)。 apk(简单、快速,但包生态小)。 Alpine 安装依赖少,但可能需手动编译;AL2023 更易获取 AWS 工具。
C 库 (libc) glibc(标准、兼容性强,支持更多软件)。 musl(轻量、安全,但二进制兼容性差)。 Alpine 可能导致某些 Java native 库(如 JNI)兼容问题;AL2023 无此顾虑。
镜像/系统大小 较大(基础 ~500MB+,Corretto ~800MB)。 极小(基础 ~5MB,Temurin JRE ~150MB)。 Alpine 适合 Docker/K8s 生产部署,减少传输/存储成本;AL2023 适合开发/测试。
内核与服务 systemd,全内核支持(包括实时补丁)。 无 systemd(使用 OpenRC),内核精简。 Alpine 容器友好,但调试复杂;AL2023 更稳定,集成 AWS 云-init。
安全与支持 默认 SELinux/AppArmor,5 年 LTS(季度安全更新)。 强加密默认,滚动发布;社区支持,无 LTS。 AL2023 更适合企业生产;Alpine 灵活但需手动维护。
适用场景 AWS EC2/EKS 服务器、CI/CD 构建;Corretto 镜像常用。 容器化(如 Docker runtime)、边缘计算;Eclipse Temurin 用其减小 Java 镜像。 在您的 Dockerfile 中,用 Alpine 运行阶段“瘦身”镜像,但构建阶段可混用 AL2023 以兼容 AWS。
潜在缺点 体积大、AWS 绑定强。 包少、兼容性坑(如 glibc 依赖)。 混合使用需测试(如 Java 应用在 musl 上运行)。