51 lines
1.8 KiB
Docker
51 lines
1.8 KiB
Docker
|
|
# ====================== 构建阶段 ======================
|
|||
|
|
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"]
|