FROM python:3.11-slim-bookworm # 复制需要用到的 C 库和基础工具 RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates # 安装 uv 作为包管理器 COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ # 设置工作目录 WORKDIR /app # 安装依赖 # 将 .venv 放在项目目录,利用 uv 同步 COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-install-project --no-dev # 复制整个项目代码 COPY . . RUN uv sync --frozen --no-dev # 把 .venv 的可执行路径加到 PATH 里 ENV PATH="/app/.venv/bin:$PATH" # 暴露 7860 端口(这是 Hugging Face Docker Space 的强制要求) EXPOSE 7860 # 启动 FastAPI 服务 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]