# 第一阶段：编译阶段（使用 JDK 17 完整版本，包含编译工具）
FROM eclipse-temurin:17-jdk-alpine AS builder

# 设置工作目录
WORKDIR /app

# 复制 Maven/Gradle 配置文件（优先复制配置文件，利用 Docker 缓存机制加速构建）
COPY pom.xml .

# 复制源代码
COPY src ./src

# 编译打包（根据项目构建工具选择以下一种）
# Maven 项目（需要在容器内安装 Maven）
RUN apk add --no-cache maven \
    && mvn clean package -DskipTests \
    && mv target/*.jar app.jar  # 将生成的 jar 重命名为 app.jar


# 第二阶段：运行阶段（仅保留 JRE，减小镜像体积）
FROM eclipse-temurin:17-jre-alpine

# 设置工作目录
WORKDIR /app

# 从编译阶段复制生成的 JAR 文件到当前阶段
COPY --from=builder /app/app.jar .

# 暴露应用端口
EXPOSE 8077

# 启动命令（可添加 JVM 参数）
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]