Files
rtsp-video-analysis-system/ruoyi-admin/Dockerfile

70 lines
2.0 KiB
Docker
Raw Normal View History

2025-09-30 14:23:33 +08:00
# 构建阶段
FROM maven:3.8-eclipse-temurin-17 AS builder
2025-09-30 17:03:41 +08:00
# 设置工作目录
WORKDIR /build
2025-09-30 16:55:42 +08:00
2025-09-30 17:09:37 +08:00
# 复制pom文件和源代码
2025-09-30 17:03:41 +08:00
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/
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
# 构建项目跳过测试和enforcer检查以避免依赖冲突
RUN mvn clean package -DskipTests -Denforcer.skip=true -pl ruoyi-admin -am
2025-09-30 14:23:33 +08:00
2025-09-30 19:36:48 +08:00
# 运行阶段 - 使用Debian而不是Alpine以支持JavaCV/FFmpeg
FROM eclipse-temurin:17-jre
2025-09-30 17:03:41 +08:00
2025-09-30 19:50:10 +08:00
# 安装必要的工具和JavaCV/FFmpeg完整依赖
2025-09-30 19:36:48 +08:00
RUN apt-get update && apt-get install -y \
2025-09-30 19:31:01 +08:00
curl \
2025-09-30 19:36:48 +08:00
libgomp1 \
libva-drm2 \
libva2 \
2025-09-30 19:45:11 +08:00
libxcb-shm0 \
libxcb-shape0 \
libxcb1 \
libx11-6 \
libx11-xcb1 \
2025-09-30 19:50:10 +08:00
libasound2 \
libavcodec-extra \
libavformat-extra \
libavutil-extra \
libswscale-extra \
2025-09-30 19:36:48 +08:00
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
2025-09-30 19:31:01 +08:00
&& echo "Asia/Shanghai" > /etc/timezone \
2025-09-30 19:36:48 +08:00
&& rm -rf /var/lib/apt/lists/*
2025-09-30 14:23:33 +08:00
2025-09-30 17:03:41 +08:00
# 设置工作目录
2025-09-30 14:23:33 +08:00
WORKDIR /app
2025-09-30 17:03:41 +08:00
# 创建日志和上传目录
2025-09-30 14:23:33 +08:00
RUN mkdir -p /app/logs /app/upload
2025-09-30 17:03:41 +08:00
# 复制jar包和配置文件
COPY --from=builder /build/ruoyi-admin/target/ruoyi-admin.jar /app/app.jar
2025-09-30 14:23:33 +08:00
2025-09-30 17:03:41 +08:00
# 设置环境变量
2025-09-30 14:23:33 +08:00
ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"
2025-09-30 17:03:41 +08:00
# 暴露端口(仅内部使用)
2025-09-30 14:23:33 +08:00
EXPOSE 8080
2025-09-30 17:03:41 +08:00
# 健康检查
2025-09-30 14:23:33 +08:00
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=60s \
CMD curl -f http://localhost:8080/actuator/health || exit 1
2025-09-30 17:03:41 +08:00
# 启动应用
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app/app.jar"]