- Dockerfile +14 -10
Dockerfile
CHANGED
|
@@ -1,18 +1,22 @@
|
|
| 1 |
FROM ghcr.io/astral-sh/uv:python3.12-alpine
|
| 2 |
|
| 3 |
-
# 安装
|
| 4 |
RUN apk add --no-cache nodejs npm
|
| 5 |
|
| 6 |
-
# 复制当前目录所有内容到 /app
|
| 7 |
-
COPY . /app
|
| 8 |
-
|
| 9 |
-
# 设置工作目录
|
| 10 |
WORKDIR /app
|
| 11 |
|
| 12 |
-
#
|
| 13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
|
| 15 |
-
|
|
|
|
|
|
|
| 16 |
|
| 17 |
-
#
|
| 18 |
-
CMD ["
|
|
|
|
| 1 |
FROM ghcr.io/astral-sh/uv:python3.12-alpine
|
| 2 |
|
| 3 |
+
# 安装 Node(如果确实需要)
|
| 4 |
RUN apk add --no-cache nodejs npm
|
| 5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
WORKDIR /app
|
| 7 |
|
| 8 |
+
# 仅复制依赖清单,利用缓存
|
| 9 |
+
COPY pyproject.toml uv.lock* ./
|
| 10 |
+
|
| 11 |
+
# 安装依赖(--frozen 在有 uv.lock 时更稳)
|
| 12 |
+
RUN --mount=type=cache,target=/root/.cache/uv uv sync --frozen --no-dev
|
| 13 |
+
|
| 14 |
+
# 再复制源码
|
| 15 |
+
COPY . .
|
| 16 |
|
| 17 |
+
# HF Spaces 会注入 $PORT(默认7860),你的服务必须监听它
|
| 18 |
+
ENV PORT=7860
|
| 19 |
+
EXPOSE 7860
|
| 20 |
|
| 21 |
+
# 如果是 FastAPI:将 main.py 改为绑定 0.0.0.0:$PORT(见下)
|
| 22 |
+
CMD ["sh", "-c", "uv run uvicorn main:app --host 0.0.0.0 --port ${PORT}"]
|