# ====================== 构建阶段 ======================
FROM maven:3.9.9-eclipse-temurin-8 AS builder
WORKDIR /app

# 缓存pom
COPY pom.xml .
COPY cmvr-iot-admin/pom.xml    cmvr-iot-admin/
COPY cmvr-iot-framework/pom.xml cmvr-iot-framework/
COPY cmvr-iot-system/pom.xml   cmvr-iot-system/
COPY cmvr-iot-quartz/pom.xml   cmvr-iot-quartz/
COPY cmvr-iot-generator/pom.xml cmvr-iot-generator/
COPY cmvr-iot-common/pom.xml   cmvr-iot-common/
COPY cmvr-iot-device/pom.xml   cmvr-iot-device/
COPY cmvr-iot-test/pom.xml     cmvr-iot-test/
COPY cmvr-iot-api/pom.xml      cmvr-iot-api/
COPY cmvr-iot-vi/pom.xml       cmvr-iot-vi/
COPY cmvr-iot-ti/pom.xml       cmvr-iot-ti/
COPY cmvr-iot-evaluation/pom.xml cmvr-iot-evaluation/
COPY cmvr-iot-api/cmvr-iot-llm/pom.xml cmvr-iot-api/cmvr-iot-llm/
COPY cmvr-iot-api/cmvr-iot-edge/pom.xml cmvr-iot-api/cmvr-iot-edge/
COPY cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/pom.xml cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-client/
COPY cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/pom.xml cmvr-iot-api/cmvr-iot-edge/cmvr-iot-grpc-lib/

RUN mvn dependency:go-offline -B --no-transfer-progress

COPY . .

RUN mvn clean package -DskipTests -pl cmvr-iot-admin -am --no-transfer-progress

# ====================== 运行阶段 ======================
FROM openjdk:8-jdk-alpine

WORKDIR /app

# -------------------------- 【唯一正确写法】 --------------------------
# 1. 先把所有jar复制进来
COPY --from=builder /app/cmvr-iot-admin/target/*.jar ./

# 2. 自动删除不能运行的小jar（只保留可执行jar）
RUN find . -name "*.jar" -type f -size -20000k -delete

# 3. 重命名为app.jar
RUN mv *.jar app.jar

ENTRYPOINT ["java", "-jar", \
"-Dspring.profiles.active=dev", \
"-Djava.security.egd=file:/dev/./urandom", \
"-XX:+UseG1GC", \
"-Xms512m", "-Xmx1024m", \
"app.jar"]
