FROM python:3.10-slim WORKDIR /app # 安装系统依赖 RUN apt-get update && apt-get install -y git wget ffmpeg && rm -rf /var/lib/apt/lists/* # 安装 PyTorch CPU 版本 RUN pip install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu # 安装依赖 COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # 安装 huggingface_hub 用来下载模型 RUN pip install --no-cache-dir huggingface_hub # 预下载模型到 /app/model RUN python -c "from huggingface_hub import snapshot_download; snapshot_download('altaidevorg/BGE-M3-Distill-8L', local_dir='/app/model')" # 环境变量:强制 SentenceTransformer 直接用 /app/model ENV EMBEDDING_MODEL=/app/model ENV TRANSFORMERS_CACHE=/app/hf_cache ENV HF_HOME=/app/hf_cache # 确保缓存目录有权限 RUN mkdir -p /app/hf_cache && chmod -R 777 /app/hf_cache # 拷贝代码 COPY app app EXPOSE 8000 # 启动 FastAPI CMD uvicorn app.main:app --host 0.0.0.0 --port ${PORT:-7860}