# 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"]