update dockerfile

This commit is contained in:
2025-09-30 16:55:42 +08:00
parent e0f2b8bf35
commit bdf33e28e6
3 changed files with 15 additions and 44 deletions

View File

@@ -1,11 +1,10 @@
# 使用支持CUDA的PyTorch基础镜像 # 使用支持CUDA的PyTorch基础镜像
FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime FROM python:3.9-slim
# 设置工作目录 # 设置工作目录
WORKDIR /app WORKDIR /app
# 设置pip镜像源 # 设置pip镜像源
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装系统依赖 # 安装系统依赖
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y \
@@ -14,14 +13,19 @@ RUN apt-get update && apt-get install -y \
libxext6 \ libxext6 \
libxrender-dev \ libxrender-dev \
libgomp1 \ libgomp1 \
libgl1 \
libglib2.0-dev \
curl \ curl \
gcc \
g++ \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# 复制requirements.txt # 复制requirements.txt
COPY requirements.txt . COPY requirements.txt .
# 安装Python依赖 # 安装Python依赖
RUN pip install --no-cache-dir -r requirements.txt RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple
# 复制应用代码 # 复制应用代码
COPY app/ /app/app/ COPY app/ /app/app/

View File

@@ -4,7 +4,7 @@ opencv-python==4.8.0.76
numpy==1.25.2 numpy==1.25.2
pydantic==2.3.0 pydantic==2.3.0
python-multipart==0.0.6 python-multipart==0.0.6
minio==7.1.15 minio>=7.2,<8
torch>=1.7.0 torch>=1.7.0
torchvision>=0.8.1 torchvision>=0.8.1
ultralytics>=8.0.0 ultralytics>=8.0.0

View File

@@ -1,63 +1,30 @@
# 构建阶段 # 构建阶段
FROM maven:3.8-eclipse-temurin-17 AS builder FROM maven:3.8-eclipse-temurin-17 AS builder
# 设置工作目录
WORKDIR /build WORKDIR /build
# 复制pom文件 # 一次性复制完整工程(包含所有模块)
COPY pom.xml . COPY . .
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 RUN mvn -U -B -DskipTests -T 1C clean package -pl ruoyi-admin -am
# 复制源代码
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 FROM eclipse-temurin:17-jre-alpine
# 安装必要的工具
RUN apk add --no-cache curl tzdata && \ RUN apk add --no-cache curl tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \ echo "Asia/Shanghai" > /etc/timezone && \
apk del tzdata apk del tzdata
# 设置工作目录
WORKDIR /app WORKDIR /app
# 创建日志和上传目录
RUN mkdir -p /app/logs /app/upload RUN mkdir -p /app/logs /app/upload
# 复制jar包和配置文件 # 如果目标名不是 ruoyi-admin.jar可用通配符
COPY --from=builder /build/ruoyi-admin/target/ruoyi-admin.jar /app/app.jar COPY --from=builder /build/ruoyi-admin/target/*-admin*.jar /app/app.jar
COPY --from=builder /build/ArcFace64.dat /app/
# 设置环境变量
ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom" ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"
# 暴露端口(仅内部使用)
EXPOSE 8080 EXPOSE 8080
# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=60s \ HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=60s \
CMD curl -f http://localhost:8080/actuator/health || exit 1 CMD curl -f http://localhost:8080/actuator/health || exit 1
# 启动应用
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app/app.jar"] ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app/app.jar"]