Update Dockerfile
Browse files- 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 配置:
|
| 13 |
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser \
|
| 14 |
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
|
| 15 |
-
# 解决
|
| 16 |
CHROME_BIN=/usr/bin/chromium-browser
|
| 17 |
|
| 18 |
# 1. 切换 root 用户(安装系统依赖需 root 权限)
|
| 19 |
USER root
|
| 20 |
|
| 21 |
-
# 2. 用 Alpine
|
| 22 |
RUN apk update && \
|
| 23 |
apk add --no-cache \
|
| 24 |
-
# 核心
|
| 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 |
-
#
|
| 37 |
-
|
| 38 |
-
# 音频服务库
|
| 39 |
alsa-lib \
|
| 40 |
-
# X11 测试扩展库(模拟鼠标
|
| 41 |
libxtst \
|
| 42 |
-
# 字体库(解决中文
|
| 43 |
ttf-freefont \
|
| 44 |
ttf-dejavu \
|
| 45 |
-
#
|
| 46 |
ca-certificates \
|
|
|
|
| 47 |
freetype \
|
| 48 |
harfbuzz && \
|
| 49 |
-
# 清理
|
| 50 |
rm -rf /var/cache/apk/*
|
| 51 |
|
| 52 |
-
# 3. 安装 n8n-puppeteer 插件 + 修复权限
|
| 53 |
RUN cd /home/node/.n8n && \
|
| 54 |
-
# 安装最新版插件(若需固定版本,可改为 @x.x.x,如 n8n-nodes-puppeteer@2.1.0)
|
| 55 |
npm install n8n-nodes-puppeteer@latest && \
|
| 56 |
-
#
|
| 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"]
|
|
|
|
| 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 替代 libxss(Alpine 中对应包)
|
| 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"]
|