youbiaokachi commited on
Commit
9ce99eb
·
verified ·
1 Parent(s): 2e2f3cd

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +15 -13
Dockerfile CHANGED
@@ -9,19 +9,21 @@ RUN python -m patchright install --with-deps chrome
9
  # 复制所有代码和文件
10
  COPY . .
11
 
12
- # --- START: 采用您提出的 /tmp + 符号链接方案 ---
13
-
14
- # 1. /tmp 目录下创建一个实际的数据目录。/tmp 目录对所有用户都是可写的。
15
- RUN mkdir -p /tmp/playwright_data
16
-
17
- # 2. (可选但推荐) 将这个临时目录的所有权也明确交给 pwuser,确保完全的控制权。
18
- # 虽然 /tmp 本身可写,但这样做更规范,避免任何潜在的子目录权限问题。
19
- RUN chown -R pwuser:pwuser /tmp/playwright_data
20
-
21
- # 3. 创建一个从 /data 到 /tmp/playwright_data 的符号链接。
22
- # 这步是关键!当应用尝试访问或写入 /data 时,操作系统会自动将其重定向到
23
- # /tmp/playwright_data,而 pwuser 在那里拥有写入权限。
24
- RUN ln -s /tmp/playwright_data /data
 
 
25
 
26
  # --- END ---
27
 
 
9
  # 复制所有代码和文件
10
  COPY . .
11
 
12
+ # --- START: 终极权限解决方案 (同时处理 /app/data /data) ---
13
+
14
+ # 我们将所有权限相关的操作合并到一个 RUN 命令中,以减少镜像层数
15
+ RUN \
16
+ # 1. 解决 /app/data 的问题:直接创建并授权
17
+ mkdir -p /app/data && \
18
+ \
19
+ # 2. 解决 /data 的问题:使用 /tmp 和符号链接
20
+ mkdir -p /tmp/root_data && \
21
+ \
22
+ # 3. 一次性将这两个目录的所有权都交给 pwuser
23
+ chown -R pwuser:pwuser /app/data /tmp/root_data && \
24
+ \
25
+ # 4. 为 /data 创建符号链接
26
+ ln -s /tmp/root_data /data
27
 
28
  # --- END ---
29