From 15a1cef041c873e48af7c08cbfcb0aa1f86c4806 Mon Sep 17 00:00:00 2001 From: chenxiky <2868613334@qq.com> Date: Fri, 15 Aug 2025 12:48:57 +0800 Subject: [PATCH] =?UTF-8?q?dockerFile=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aircraft-system/Dockerfile | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 aircraft-system/Dockerfile diff --git a/aircraft-system/Dockerfile b/aircraft-system/Dockerfile new file mode 100644 index 0000000..107414b --- /dev/null +++ b/aircraft-system/Dockerfile @@ -0,0 +1,56 @@ +# 第一阶段:使用Maven构建项目 +FROM maven:3.8.7-openjdk-17 AS builder + +# 设置工作目录 +WORKDIR /workspace + +# 复制所有POM文件以利用Docker缓存层 +COPY pom.xml . +COPY aircraft-common/pom.xml ./aircraft-common/ +COPY aircraft-generator/pom.xml ./aircraft-generator/ +COPY aircraft-logging/pom.xml ./aircraft-logging/ +COPY aircraft-system/pom.xml ./aircraft-system/ +COPY aircraft-tools/pom.xml ./aircraft-tools/ + +# 下载依赖项(仅当pom文件更改时才会重新执行) +RUN mvn -B dependency:go-offline + +# 复制源代码 +COPY aircraft-common/src ./aircraft-common/src +COPY aircraft-generator/src ./aircraft-generator/src +COPY aircraft-logging/src ./aircraft-logging/src +COPY aircraft-system/src ./aircraft-system/src +COPY aircraft-tools/src ./aircraft-tools/src + +# 构建整个项目并跳过测试 +RUN mvn -B package -pl aircraft-system -am -DskipTests + +# 第二阶段:创建运行时镜像 +FROM eclipse-temurin:17-jre-alpine + +# 设置元数据 +LABEL maintainer="aircraft-team" +LABEL module="aircraft-system" + +# 设置工作目录 +WORKDIR /app + +# 从构建阶段复制生成的JAR文件 +COPY --from=builder /workspace/aircraft-system/target/*.jar app.jar + +# 设置时区 +ENV TZ=Asia/Shanghai +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +# 暴露默认端口 +EXPOSE 8000 + +# 设置JVM参数 +ENV JAVA_OPTS="-Xmx512m -Xms256m -XX:+UseG1GC -XX:MaxGCPauseMillis=200" + +# 健康检查 +HEALTHCHECK --interval=30s --timeout=3s \ + CMD wget -q -O - http://localhost:8000/actuator/health || exit 1 + +# 启动应用 +ENTRYPOINT exec java $JAVA_OPTS -jar app.jar