| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- ########################## Maven 构建 ##########################
- FROM maven:3.9.10-eclipse-temurin-8-noble AS aegis-builder
- # 设置工作目录
- WORKDIR /app
- # 复制 Maven 配置文件
- COPY ./deployment/maven/settings.xml /root/.m2/settings.xml
- # 复制项目文件
- COPY ./pom.xml pom.xml
- COPY ./aegis-framework aegis-framework/
- COPY ./aegis-common aegis-common/
- COPY ./aegis-system aegis-system/
- COPY ./aegis-quartz aegis-quartz/
- COPY ./aegis-admin aegis-admin/
- COPY ./aegis-emergency aegis-emergency/
- COPY ./aegis-notification aegis-notification/
- COPY ./aegis-file aegis-file/
- COPY ./aegis-resource aegis-resource/
- COPY ./aegis-knowledge aegis-knowledge/
- COPY ./aegis-case aegis-case/
- COPY ./aegis-camera aegis-camera/
- # 构建项目
- RUN mvn clean package -DskipTests
- ######################### 应急指挥服务镜像 #########################
- FROM eclipse-temurin:8-jre-noble AS aegis-admin
- # 应用启动参数
- ENV JVM_XMS=512
- ENV JVM_XMX=1024
- ENV SERVER_PORT=8080
- ENV SPRING_PROFILE=druid
- # 设置工作目录
- WORKDIR /app
- # 复制构建好的 JAR 文件
- COPY --from=aegis-builder /app/aegis-admin/target/aegis-admin.jar /app/aegis-admin.jar
- # 启动应用
- CMD java \
- -Xms${JVM_XMS}m \
- -Xmx${JVM_XMX}m \
- -Duser.timezone=GMT+8 \
- -Dserver.port=${SERVER_PORT} \
- -Dspring.profiles.active=${SPRING_PROFILE} \
- -jar /app/aegis-admin.jar
- ######################### 应急指挥前端构建 #########################
- FROM node:14.19.1-bullseye AS aegis-ui-builder
- # 设置镜像源
- RUN npm config set registry https://registry.npmmirror.com/
- # 安装构建依赖 (Python + g++ + make)
- RUN apt-get update && apt-get install -y \
- python3 \
- make \
- g++ \
- && rm -rf /var/lib/apt/lists/*
- # 设置工作目录
- WORKDIR /app
- # 复制依赖文件
- COPY ./aegis-ui/package.json ./package.json
- # 安装依赖
- RUN npm install
- # 复制项目文件
- COPY ./aegis-ui .
- # 构建前端
- RUN npm run build:prod
- ######################### 应急指挥前端镜像 #########################
- FROM nginx:1.29.0-alpine3.22 AS aegis-ui
- # 复制前端文件
- COPY --from=aegis-ui-builder /app/dist /usr/share/nginx/html
- # 复制自定义 Nginx 配置
- COPY ./deployment/nginx/ui.conf /etc/nginx/conf.d/default.conf
- # 启动nginx并保持前台运行
- CMD ["nginx", "-g", "daemon off;"]
|