# === 第一阶段:使用 Maven 3.9.9 + JDK 26 进行编译打包 === FROM maven:3.9.16-eclipse-temurin-26 AS builder WORKDIR /app # 1C/1G 部署机上限制 Maven 峰值内存,避免构建挤占运行中的服务。 ENV MAVEN_OPTS="-Xms64m -Xmx384m -XX:+UseSerialGC" # 1. 配置阿里云 Maven 镜像加速下载(可选,国内服务器强烈推荐) RUN mkdir -p /root/.m2 RUN echo 'aliyunmaven*阿里云公共仓库https://maven.aliyun.com/repository/public' > /root/.m2/settings.xml # 2. 复制源码并编译 COPY pom.xml . COPY src ./src # 执行打包,跳过单元测试以加快 CI/CD 速度 RUN mvn clean package -DskipTests # === 第二阶段:使用轻量级 JDK 26 运行时镜像 === FROM eclipse-temurin:26-jre WORKDIR /app # 从第一阶段的 builder 中,把生成的 jar 包复制过来 # (请确保你的 pom.xml 最终打包出来的名字能匹配上,或者可以写死特定的 jar 包名) COPY --from=builder /app/target/*.jar app.jar # 暴露端口(根据你的 Spring Boot 实际端口调整) EXPOSE 8080 # 针对 JDK 26 优化的启动命令(默认开启一些现代 GC 特性) ENTRYPOINT ["java", "-jar", "app.jar"]