kyyyx commited on
Commit
b8c96d7
·
verified ·
1 Parent(s): 7fb5ca9
Files changed (1) hide show
  1. Dockerfile +18 -10
Dockerfile CHANGED
@@ -1,22 +1,30 @@
1
  FROM ghcr.io/astral-sh/uv:python3.12-alpine
2
 
3
- # 安装node
4
  RUN apk add --no-cache nodejs npm
5
 
6
- # 复制当前目录所有内容到 /app
7
- COPY . /app
8
 
9
  # 设置工作目录
10
  WORKDIR /app
11
 
12
- # 设置缓存目录为 /tmp(总是可写的)
13
- ENV UV_CACHE_DIR=/tmp/uv-cache
14
- ENV XDG_CACHE_HOME=/tmp
15
 
16
- # 执行 uv sync
17
- RUN uv sync
 
 
 
 
 
 
 
 
 
18
 
19
  EXPOSE 8000
20
 
21
- # 启动时也使用相同的缓存目录
22
- CMD ["uv", "run", "main.py"]
 
1
  FROM ghcr.io/astral-sh/uv:python3.12-alpine
2
 
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"]