# 多阶段构建 - 构建阶段
FROM maven:3.9-eclipse-temurin-21 AS builder

WORKDIR /build

# 复制父 pom 和依赖模块
COPY pom.xml .
COPY zkhj-core ./zkhj-core
COPY zkhj-config ./zkhj-config
COPY zkhj-common ./zkhj-common
COPY zkhj-dto ./zkhj-dto
COPY zkhj-feign-api ./zkhj-feign-api
COPY zkhj-middleware ./zkhj-middleware

# 复制用户服务
COPY zkhj-roadside-user-service ./zkhj-roadside-user-service

# 构建项目
RUN mvn clean package -pl zkhj-roadside--service -am -DskipTests -B

# 运行阶段
FROM amazoncorretto:21-al2023-jdk

LABEL maintainer="zkhj"
LABEL service="zkhj-roadside-user-service"
LABEL version="1.0"

# 创建应用目录和日志目录
RUN mkdir -p /app /data/applogs

WORKDIR /app

# 环境变量
ENV LOG_HOME=/data/applogs \
    JAVA_OPTS="-Xms512m -Xmx512m -XX:+UseG1GC -XX:MaxGCPauseMillis=200" \
    PARAMS="" \
    TZ=Asia/Shanghai

# 设置时区
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 从构建阶段复制 jar 包
COPY --from=builder /build/zkhj-roadside-user-service/target/zkhj-roadside-user-service-*.jar /app/app.jar

# 暴露端口
EXPOSE 7101

# 健康检查
HEALTHCHECK --interval=30s --timeout=3s --start-period=40s --retries=3 \
  CMD curl -f http://localhost:7101/roadside/user/actuator/health || exit 1

# 启动命令
ENTRYPOINT ["sh","-c","java $JAVA_OPTS -DLOG_HOME=$LOG_HOME -jar /app/app.jar $PARAMS"]
