# ==================== 第一阶段：编译 ====================
FROM maven:3.8-openjdk-17 AS builder
WORKDIR /build

# 阿里云 Maven 镜像加速
COPY settings.xml /root/.m2/settings.xml

# 先拷贝 pom 利用 Docker 缓存层（依赖不变时跳过下载）
COPY pom.xml .
COPY common/pom.xml common/pom.xml
COPY manager/pom.xml manager/pom.xml
COPY admin/pom.xml admin/pom.xml

# 拷贝源码
COPY . .

# 构建（从父 pom 编译，admin 依赖 common 和 manager）
RUN --mount=type=cache,target=/root/.m2/repository \
    mvn clean package -pl admin -am -DskipTests

# ==================== 第二阶段：运行 ====================
FROM alibabadragonwell/dragonwell:17-anolis

ENV TZ=Asia/Shanghai
ENV PROFILES_ACTIVE=prod
ENV JAVA_OPTS="-XX:MaxRAMPercentage=75.0 \
               -XX:+UseG1GC \
               -XX:+HeapDumpOnOutOfMemoryError \
               -XX:HeapDumpPath=/app/logs/heapdump.hprof \
               -Dfile.encoding=UTF-8 \
               -Duser.timezone=Asia/Shanghai"

# 时区 + curl（健康检查用）
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
    && yum install -y curl && yum clean all

RUN mkdir -p /app/logs

WORKDIR /app

EXPOSE 8081

COPY --from=builder /build/admin/target/admin.jar ./admin.jar

CMD java $JAVA_OPTS -jar admin.jar
