| FROM ghcr.io/astral-sh/uv:python3.12-alpine | |
| # 安装 Node(如果确实需要) | |
| RUN apk add --no-cache nodejs npm | |
| WORKDIR /app | |
| # 仅复制依赖清单,利用缓存 | |
| COPY pyproject.toml uv.lock* ./ | |
| # 安装依赖(--frozen 在有 uv.lock 时更稳) | |
| RUN --mount=type=cache,target=/root/.cache/uv uv sync --frozen --no-dev | |
| # 再复制源码 | |
| COPY . . | |
| # HF Spaces 会注入 $PORT(默认7860),你的服务必须监听它 | |
| ENV PORT=7860 | |
| EXPOSE 7860 | |
| # 如果是 FastAPI:将 main.py 改为绑定 0.0.0.0:$PORT(见下) | |
| CMD ["sh", "-c", "uv run uvicorn main:app --host 0.0.0.0 --port ${PORT}"] | |