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