- 后端 API(Flask + Gunicorn) - RAG 引擎(混合检索 + 云端 Reranker + 引用溯源) - 文档解析(MinerU + 多格式支持) - Docker 生产部署配置 - 排除前端项目、敏感配置、模型文件
63 lines
2.0 KiB
Docker
63 lines
2.0 KiB
Docker
# Dockerfile.prod - 生产环境优化版
|
||
# ================================
|
||
# 特点:CPU-only、精简依赖、最小化镜像
|
||
|
||
FROM python:3.10-slim
|
||
|
||
WORKDIR /app
|
||
|
||
# 使用阿里云镜像源
|
||
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources \
|
||
&& sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources
|
||
|
||
# 系统依赖(精简版)
|
||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
build-essential \
|
||
poppler-utils \
|
||
libmagic1 \
|
||
curl \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
|
||
# ==================== PyTorch(CPU 模式) ====================
|
||
# 先从阿里云安装 PyTorch 依赖(避免从 PyPI 下载超时)
|
||
RUN pip install --no-cache-dir networkx sympy mpmath typing-extensions \
|
||
-i https://mirrors.aliyun.com/pypi/simple/
|
||
# 再从 PyTorch 官方源下载 CPU-only 版本(约 200MB),跳过依赖解析
|
||
RUN pip install --no-cache-dir --no-deps torch --index-url https://download.pytorch.org/whl/cpu
|
||
|
||
# 设置 PyTorch 使用 CPU 模式
|
||
ENV CUDA_VISIBLE_DEVICES=""
|
||
|
||
# ==================== Python 依赖 ====================
|
||
COPY requirements-prod.txt .
|
||
RUN pip install --no-cache-dir -r requirements-prod.txt \
|
||
-i https://mirrors.aliyun.com/pypi/simple/
|
||
|
||
# ==================== 应用代码 ====================
|
||
COPY . .
|
||
|
||
# ==================== MinerU 配置 ====================
|
||
# 生产环境使用本地模型
|
||
RUN mkdir -p /root && echo '{\n\
|
||
"models-dir": {\n\
|
||
"pipeline": "/app/models/mineru/pipeline",\n\
|
||
"vlm": "/app/models/mineru/vlm"\n\
|
||
},\n\
|
||
"config_version": "1.3.1"\n\
|
||
}' > /root/mineru.json
|
||
|
||
ENV MINERU_MODEL_SOURCE=local
|
||
ENV MINERU_TOOLS_CONFIG_JSON=/root/mineru.json
|
||
|
||
# ==================== 数据目录 ====================
|
||
RUN mkdir -p knowledge/vector_store documents models .data
|
||
|
||
# ==================== 环境变量 ====================
|
||
ENV APP_ENV=prod
|
||
ENV PYTHONUNBUFFERED=1
|
||
|
||
EXPOSE 5001
|
||
|
||
# 生产模式启动
|
||
CMD ["gunicorn", "-c", "deploy/gunicorn.conf.py", "deploy.wsgi:app"]
|