hins111 commited on
Commit
28b6ebb
·
verified ·
1 Parent(s): ae6e461

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +11 -7
Dockerfile CHANGED
@@ -4,22 +4,26 @@ FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim
4
  # 设置工作目录
5
  WORKDIR /app
6
 
7
- # --- 修改这一行 ---
8
- # 将 uv 的缓存目录设置为 *工作目录* 内的某个位置
9
  ENV UV_CACHE_DIR=/app/.uv-cache
10
- # --- 修改行结束 ---
 
 
 
 
 
11
 
12
  # 安装依赖
13
- # 首先仅复制依赖文件以利用 Docker 层缓存
14
  COPY pyproject.toml .
15
  # 安装 pyproject.toml 中定义的依赖
16
- RUN uv sync
17
 
18
  # 复制应用程序代码
19
- COPY main.py .
20
 
21
  # 暴露应用程序运行的端口
22
  EXPOSE 8000
23
 
24
- # 使用 uv run 执行 uvicorn 运行应用程序的命令
25
  CMD ["uv", "run", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
 
4
  # 设置工作目录
5
  WORKDIR /app
6
 
7
+ # 设置 uv 的缓存目录
 
8
  ENV UV_CACHE_DIR=/app/.uv-cache
9
+
10
+ # --- 添加此 RUN 命令 ---
11
+ # 显式创建缓存目录并设置所有权
12
+ # $(id -u):$(id -g) 确保其由当前运行命令的用户拥有
13
+ RUN mkdir -p $UV_CACHE_DIR && chown -R $(id -u):$(id -g) $UV_CACHE_DIR
14
+ # --- 添加命令结束 ---
15
 
16
  # 安装依赖
17
+ # 先只复制依赖文件
18
  COPY pyproject.toml .
19
  # 安装 pyproject.toml 中定义的依赖
20
+ RUN uv sync # 此命令现在应该有权限
21
 
22
  # 复制应用程序代码
23
+ COPY . .
24
 
25
  # 暴露应用程序运行的端口
26
  EXPOSE 8000
27
 
28
+ # 运行应用程序的命令
29
  CMD ["uv", "run", "uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]