# === 第一阶段：使用 Maven 3.9.9 + JDK 26 进行编译打包 ===
FROM maven:3.9.16-eclipse-temurin-26 AS builder
WORKDIR /app

# 1. 配置阿里云 Maven 镜像加速下载（可选，国内服务器强烈推荐）
RUN mkdir -p /root/.m2
RUN echo '<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"><mirrors><mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url></mirror></mirrors></settings>' > /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"]
