kyyyx commited on
Commit
c822f40
·
verified ·
1 Parent(s): b8c96d7
Files changed (1) hide show
  1. Dockerfile +14 -10
Dockerfile CHANGED
@@ -3,28 +3,32 @@ FROM ghcr.io/astral-sh/uv:python3.12-alpine
3
  # 安装 node
4
  RUN apk add --no-cache nodejs npm
5
 
6
- # 创建应用目录并设置权限
7
- RUN mkdir -p /app && chmod 755 /app
8
 
9
- # 设置工作目录
10
  WORKDIR /app
11
 
12
- # 先复制依赖文件
13
- COPY pyproject.toml uv.lock ./
14
 
15
- # 安装依赖(在复制应用代码之前,利用 Docker 缓存)
 
 
 
 
 
 
 
16
  RUN uv sync --frozen --no-install-project
17
 
18
  # 复制所有应用代码
19
  COPY . .
20
 
21
- # 确保所有文件有正确的权限
22
- RUN chmod -R 755 /app
23
-
24
  # 安装项目本身
25
  RUN uv sync --frozen
26
 
27
  EXPOSE 8000
28
 
29
- # 直接使用 python 运行(避免 uv run 的权限问题)
30
  CMD ["uv", "run", "python", "main.py"]
 
3
  # 安装 node
4
  RUN apk add --no-cache nodejs npm
5
 
6
+ # 强制使用 root 用户
7
+ USER root
8
 
9
+ # 创建应用目录
10
  WORKDIR /app
11
 
12
+ # 复制依赖文件
13
+ COPY pyproject.toml uv.lock* ./
14
 
15
+ # 设置环境变量,强制 uv 使用 /tmp 作为缓存
16
+ ENV UV_CACHE_DIR=/tmp/.cache/uv
17
+ ENV XDG_CACHE_HOME=/tmp/.cache
18
+
19
+ # 创建缓存目录
20
+ RUN mkdir -p /tmp/.cache/uv && chmod 777 /tmp/.cache/uv
21
+
22
+ # 安装依赖
23
  RUN uv sync --frozen --no-install-project
24
 
25
  # 复制所有应用代码
26
  COPY . .
27
 
 
 
 
28
  # 安装项目本身
29
  RUN uv sync --frozen
30
 
31
  EXPOSE 8000
32
 
33
+ # 运行时保持 root 用户
34
  CMD ["uv", "run", "python", "main.py"]