iyougame commited on
Commit
655ff0e
·
verified ·
1 Parent(s): 091a5c4

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +21 -21
Dockerfile CHANGED
@@ -9,57 +9,57 @@ LABEL maintainer="Xiaoliang <xiaoliang.zero@gmail.com>"
9
  ENV N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
10
  N8N_RUNNERS_ENABLED=true \
11
  N8N_PROXY_HOPS=1 \
12
- # Puppeteer 配置:指定 Alpine 中 Chromium 路径(固定路径
13
  PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser \
14
  PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
15
- # 解决 Alpine 中 Chromium 运行警告(可选但推荐)
16
  CHROME_BIN=/usr/bin/chromium-browser
17
 
18
  # 1. 切换 root 用户(安装系统依赖需 root 权限)
19
  USER root
20
 
21
- # 2. 用 Alpine 正确包名安装 Puppeteer 依赖(关键修复
22
  RUN apk update && \
23
  apk add --no-cache \
24
- # 核心依赖:Chromium 浏览器(Alpine 官方包)
25
  chromium \
26
- # 虚拟显示服务(无头模式必需,替代桌面环境
27
  xvfb \
28
- # GTK3 图形库(Chrome 界面渲染)
29
  gtk+3.0 \
30
- # 图形缓冲区管理库(解决 GPU 渲染报错)
31
  mesa-gbm \
32
- # 通知服务库(Chrome 通知功能依赖)
33
  libnotify \
34
- # 网络安全服务库(HTTPS 连接、Cookie 管理
35
  nss \
36
- # X11 屏幕保护扩展库Chrome 窗口管理
37
- libxss \
38
- # 音频服务库(避免音频相关报错)
39
  alsa-lib \
40
- # X11 测试扩展库(模拟鼠标点击、键盘输入
41
  libxtst \
42
- # 字体库(解决中文/特殊字符乱码)
43
  ttf-freefont \
44
  ttf-dejavu \
45
- # 补充:Alpine 中 Chromium 依赖的额外库(避免启动缺失
46
  ca-certificates \
 
47
  freetype \
48
  harfbuzz && \
49
- # 清理 apk 缓存减少镜像体积,避免冗余文件)
50
  rm -rf /var/cache/apk/*
51
 
52
- # 3. 安装 n8n-puppeteer 插件 + 修复权限(确保 node 用户可访问)
53
  RUN cd /home/node/.n8n && \
54
- # 安装最新版插件(若需固定版本,可改为 @x.x.x,如 n8n-nodes-puppeteer@2.1.0)
55
  npm install n8n-nodes-puppeteer@latest && \
56
- # 把插件目录权限还给 node 用户(避免运行时限拒绝)
57
  chown -R node:node /home/node/.n8n
58
 
59
- # 4. 切回 node 用户(遵循 n8n 官方安全规范,非 root 运行
60
  USER node
61
 
62
- # 保留原有配置:数据卷、端口暴露、入口命令
63
  VOLUME ["$HOME/.n8n"]
64
  EXPOSE 5678
65
  ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"]
 
9
  ENV N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
10
  N8N_RUNNERS_ENABLED=true \
11
  N8N_PROXY_HOPS=1 \
12
+ # Puppeteer 配置:Alpine 中 Chromium 固定路径
13
  PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser \
14
  PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
15
+ # 解决 Chromium 运行警告
16
  CHROME_BIN=/usr/bin/chromium-browser
17
 
18
  # 1. 切换 root 用户(安装系统依赖需 root 权限)
19
  USER root
20
 
21
+ # 2. 修复依赖包:libxscrnsaver 替代 libxss(Alpine 专属包名)
22
  RUN apk update && \
23
  apk add --no-cache \
24
+ # 核心:Chromium 浏览器
25
  chromium \
26
+ # 虚拟显示服务(无头模式必需)
27
  xvfb \
28
+ # GTK3 图形库(Chrome 渲染依赖
29
  gtk+3.0 \
30
+ # 图形缓冲区管理库(解决 GPU 报错)
31
  mesa-gbm \
32
+ # 通知服务库
33
  libnotify \
34
+ # 网络安全服务库(HTTPS 依赖
35
  nss \
36
+ # 修复点:用 libxscrnsaver 替代 libxssAlpine 中对应包
37
+ libxscrnsaver \
38
+ # 音频服务库
39
  alsa-lib \
40
+ # X11 测试扩展库(模拟鼠标/键盘)
41
  libxtst \
42
+ # 字体库(解决中文乱码)
43
  ttf-freefont \
44
  ttf-dejavu \
45
+ # 证书库(HTTPS 验证
46
  ca-certificates \
47
+ # 字体渲染库
48
  freetype \
49
  harfbuzz && \
50
+ # 清理缓存减少镜像体积
51
  rm -rf /var/cache/apk/*
52
 
53
+ # 3. 安装 n8n-puppeteer 插件 + 修复权限
54
  RUN cd /home/node/.n8n && \
 
55
  npm install n8n-nodes-puppeteer@latest && \
56
+ # 确保 node 用户访问插件目录
57
  chown -R node:node /home/node/.n8n
58
 
59
+ # 4. 切回 node 用户(遵循 n8n 安全规范)
60
  USER node
61
 
62
+ # 保留原有配置:数据卷、端口、入口命令
63
  VOLUME ["$HOME/.n8n"]
64
  EXPOSE 5678
65
  ENTRYPOINT ["tini", "--", "/docker-entrypoint.sh"]