update dockerfile
This commit is contained in:
@@ -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/
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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"]
|
||||||
Reference in New Issue
Block a user