Files
rtsp-video-analysis-system/ruoyi-admin/Dockerfile
2025-09-30 14:23:33 +08:00

63 lines
1.7 KiB
Docker

# 构建阶段
FROM maven:3.8-eclipse-temurin-17 AS builder
# 设置工作目录
WORKDIR /build
# 复制pom文件
COPY pom.xml .
COPY ruoyi-admin/pom.xml ./ruoyi-admin/
COPY ruoyi-common/pom.xml ./ruoyi-common/
COPY ruoyi-framework/pom.xml ./ruoyi-framework/
COPY ruoyi-generator/pom.xml ./ruoyi-generator/
COPY ruoyi-quartz/pom.xml ./ruoyi-quartz/
COPY ruoyi-system/pom.xml ./ruoyi-system/
COPY ruoyi-video/pom.xml ./ruoyi-video/
# 下载依赖
RUN mvn dependency:go-offline -B
# 复制源代码
COPY ruoyi-admin/src ./ruoyi-admin/src
COPY ruoyi-common/src ./ruoyi-common/src
COPY ruoyi-framework/src ./ruoyi-framework/src
COPY ruoyi-generator/src ./ruoyi-generator/src
COPY ruoyi-quartz/src ./ruoyi-quartz/src
COPY ruoyi-system/src ./ruoyi-system/src
COPY ruoyi-video/src ./ruoyi-video/src
COPY ArcFace64.dat ./
# 构建项目
RUN mvn clean package -DskipTests -pl ruoyi-admin -am
# 运行阶段
FROM eclipse-temurin:17-jre-alpine
# 安装必要的工具
RUN apk add --no-cache curl tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
apk del tzdata
# 设置工作目录
WORKDIR /app
# 创建日志和上传目录
RUN mkdir -p /app/logs /app/upload
# 复制jar包和配置文件
COPY --from=builder /build/ruoyi-admin/target/ruoyi-admin.jar /app/app.jar
COPY --from=builder /build/ArcFace64.dat /app/
# 设置环境变量
ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"
# 暴露端口(仅内部使用)
EXPOSE 8080
# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=60s \
CMD curl -f http://localhost:8080/actuator/health || exit 1
# 启动应用
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app/app.jar"]