| # 构建阶段:使用 Maven 构建项目 | |
| FROM maven:3.9.9-eclipse-temurin-24-alpine AS builder | |
| WORKDIR /app | |
| # 复制项目文件(忽略 target 目录) | |
| COPY pom.xml . | |
| COPY src ./src | |
| # 构建应用,跳过测试 | |
| RUN mvn clean package -DskipTests | |
| # 运行阶段:使用较小的 JDK 镜像运行应用 | |
| FROM openjdk:17-jdk-slim-buster | |
| WORKDIR /app | |
| # 从构建阶段复制打好的 jar 包 | |
| COPY --from=builder /app/target/demo-0.0.1-SNAPSHOT.jar app.jar | |
| # 暴露 Spring Boot 默认端口 | |
| EXPOSE 8080 | |
| # 启动命令 | |
| CMD ["java", "-jar", "app.jar"] |