Spaces:
Sleeping
Sleeping
Update Dockerfile
Browse files- Dockerfile +12 -22
Dockerfile
CHANGED
|
@@ -1,35 +1,25 @@
|
|
| 1 |
# ---- Base Stage ----
|
| 2 |
-
# 关键:使用与你项目要求匹配的 Python 3.13 版本
|
| 3 |
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS base
|
| 4 |
WORKDIR /app
|
|
|
|
| 5 |
# ---- Builder Stage ----
|
| 6 |
-
# 在这个独立的阶段,我们只负责构建包含所有依赖的虚拟环境
|
| 7 |
FROM base AS builder
|
| 8 |
-
# 优化 Docker 缓存:只复制 pyproject.toml 文件
|
| 9 |
-
# 这样,只有当你的依赖发生变化时,这一层及之后的层才会重新构建
|
| 10 |
COPY pyproject.toml .
|
| 11 |
-
# 关键步骤:
|
| 12 |
-
# 1. 创建虚拟环境 .venv
|
| 13 |
-
# 2. 激活环境
|
| 14 |
-
# 3. 使用 `uv pip install .` 直接从 pyproject.toml 安装所有依赖
|
| 15 |
-
# uv 会自动读取文件中的依赖项和你的镜像源配置
|
| 16 |
RUN uv venv && \
|
| 17 |
. .venv/bin/activate && \
|
| 18 |
uv pip install . --no-cache-dir
|
|
|
|
| 19 |
# ---- Final Stage ----
|
| 20 |
-
# 这是最终运行的镜像,它只包含运行应用所需的最少文件
|
| 21 |
FROM base AS final
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
ENV
|
| 25 |
-
|
| 26 |
-
ENV OPENAI_ACCESS_LOG=false
|
| 27 |
-
# 从 builder 阶段,复制已经构建好的、包含所有依赖的虚拟环境
|
| 28 |
COPY --from=builder /app/.venv ./.venv
|
| 29 |
-
# 复制你的所有应用代码(.py 文件等)
|
| 30 |
-
# 这一步放在后面,这样你修改代码时,Docker 不会重新安装所有依赖
|
| 31 |
COPY . .
|
| 32 |
-
|
| 33 |
-
#
|
| 34 |
-
|
| 35 |
-
|
|
|
|
|
|
|
|
|
| 1 |
# ---- Base Stage ----
|
|
|
|
| 2 |
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS base
|
| 3 |
WORKDIR /app
|
| 4 |
+
|
| 5 |
# ---- Builder Stage ----
|
|
|
|
| 6 |
FROM base AS builder
|
|
|
|
|
|
|
| 7 |
COPY pyproject.toml .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
RUN uv venv && \
|
| 9 |
. .venv/bin/activate && \
|
| 10 |
uv pip install . --no-cache-dir
|
| 11 |
+
|
| 12 |
# ---- Final Stage ----
|
|
|
|
| 13 |
FROM base AS final
|
| 14 |
+
ENV WARP_LOG_LEVEL=info
|
| 15 |
+
ENV WARP_ACCESS_LOG=true
|
| 16 |
+
ENV OPENAI_LOG_LEVEL=info
|
| 17 |
+
ENV OPENAI_ACCESS_LOG=true
|
|
|
|
|
|
|
| 18 |
COPY --from=builder /app/.venv ./.venv
|
|
|
|
|
|
|
| 19 |
COPY . .
|
| 20 |
+
|
| 21 |
+
# 解决方案:创建符号链接
|
| 22 |
+
RUN mkdir -p /tmp/logs
|
| 23 |
+
RUN ln -s /tmp/logs /app/logs
|
| 24 |
+
|
| 25 |
+
CMD ["./.venv/bin/python", "./start.py"]
|