FROM python:3.10-slim WORKDIR /app RUN apt-get update && apt-get install -y \ ffmpeg \ git \ fonts-noto-cjk \ fontconfig \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . # 先安装核心运行依赖(必须成功) RUN pip install --no-cache-dir \ torch torchvision --index-url https://download.pytorch.org/whl/cpu \ && pip install --no-cache-dir \ fastapi==0.115.0 \ uvicorn[standard]==0.30.0 \ python-multipart==0.0.9 \ PyJWT==2.9.0 \ passlib==1.7.4 \ httpx==0.27.0 \ pyyaml==6.0.2 \ python-dotenv==1.0.1 \ aiosqlite==0.20.0 \ ffmpeg-python==0.2.0 \ opencv-python-headless==4.10.0.84 \ numpy==1.26.4 \ Pillow==10.4.0 \ librosa==0.10.2 \ ultralytics==8.2.0 \ transformers==4.44.0 \ moviepy==1.0.3 \ 'scenedetect[opencv]==0.6.4' \ scipy==1.14.1 \ deep-sort-realtime==1.3 \ onnxruntime==1.19.0 # 再安装可选依赖(允许部分失败,不影响核心功能) RUN pip install --no-cache-dir \ paddleocr==2.9.1 \ paddlepaddle==2.6.2 \ pyautoflip==0.1.4 \ || echo "Warning: some optional packages failed to install" COPY . /app # 合并篮筐检测 ONNX 模型分块(方案 F) RUN mkdir -p /app/models/hoop && \ cat /app/models/hoop/chunks/best.onnx.part00 \ /app/models/hoop/chunks/best.onnx.part01 \ /app/models/hoop/chunks/best.onnx.part02 \ > /app/models/hoop/best.onnx && \ rm -rf /app/models/hoop/chunks && \ ls -lh /app/models/hoop/best.onnx RUN mkdir -p /app/data EXPOSE 7860 ENV SPACE_URL=https://hiro1997-basketball-highlight.hf.space CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860", "--timeout-keep-alive", "300"]