youbiaokachi commited on
Commit
871097d
·
verified ·
1 Parent(s): a5567bb

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +9 -11
Dockerfile CHANGED
@@ -2,22 +2,19 @@ FROM mcr.microsoft.com/playwright/python:v1.44.0-jammy
2
 
3
  WORKDIR /app
4
 
5
- # 这些命令默认会以 root 用户执行
6
  RUN pip install --no-cache-dir flask requests curl_cffi werkzeug loguru python-dotenv patchright
7
  RUN python -m patchright install --with-deps chrome
8
 
 
9
  COPY . .
10
 
11
- # --- START: 添加的核心修改 ---
12
- # 1. 明确切换到 root 用户(虽然 build 阶段通常默认是 root,但显式声明更清晰)
13
- USER root
14
- # 2. 创建 /data 目录,并将其所有者和所属组都修改为 pwuser
15
- # -p 参数确保目录存在时不会报错
16
- # -R 参数是递归修改,对目录和其下所有文件都生效
17
- RUN mkdir -p /data && chown -R pwuser:pwuser /data
18
- # 3. 切换回 pwuser,确保应用以非 root 用户运行,这非常重要!
19
- USER pwuser
20
- # --- END: 添加的核心修改 ---
21
 
22
  ENV PORT=5200
23
  ENV PYTHONUNBUFFERED=1
@@ -25,3 +22,4 @@ ENV PYTHONUNBUFFERED=1
25
  EXPOSE 5200
26
 
27
  CMD ["python", "app.py"]
 
 
2
 
3
  WORKDIR /app
4
 
5
+ # 先安装依赖
6
  RUN pip install --no-cache-dir flask requests curl_cffi werkzeug loguru python-dotenv patchright
7
  RUN python -m patchright install --with-deps chrome
8
 
9
+ # 先把所有代码和文件复制进来
10
  COPY . .
11
 
12
+ # --- START: 核心修改 ---
13
+ # 在所有文件都就位之后,再创建 data 目录并设置权限
14
+ # 这样做可以确保我们的权限设置不会被 COPY 命令覆盖
15
+ # -p 参数确保如果 /app/data 目录已存在(通过 COPY 复制进来的),命令也不会报错
16
+ RUN mkdir -p /app/data && chown -R pwuser:pwuser /app/data
17
+ # --- END: 核心修改 ---
 
 
 
 
18
 
19
  ENV PORT=5200
20
  ENV PYTHONUNBUFFERED=1
 
22
  EXPOSE 5200
23
 
24
  CMD ["python", "app.py"]
25
+