youbiaokachi commited on
Commit
1b93f93
·
verified ·
1 Parent(s): 958a0bc

Update Dockerfile

Browse files
Files changed (1) hide show
  1. 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 WARP_ACCESS_LOG=false
25
-
26
- ENV OPENAI_ACCESS_LOG=false
27
- # 从 builder 阶段,复制已经构建好的、包含所有依赖的虚拟环境
28
  COPY --from=builder /app/.venv ./.venv
29
- # 复制你的所有应用代码(.py 文件等)
30
- # 这一步放在后面,这样你修改代码时,Docker 不会重新安装所有依赖
31
  COPY . .
32
- # 最终的启动命令:
33
- # 直接使用我们预先构建好的虚拟环境中的 Python 解释器来执行脚本
34
- # 这个过程完全是只读的,不会再有任何权限问题
35
- CMD ["./.venv/bin/python", "./start.py"]
 
 
 
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"]