chakasoft commited on
Commit
cda93c5
·
verified ·
1 Parent(s): 546f2d2

Update Dockerfile

Browse files

ENV NODE_FUNCTION_ALLOW_EXTERNAL=puppeteer
作用:這是 n8n 的一個安全設定。它像一張「通行證」,明確告訴 n8n:「我允許在 Code 節點中使用 require('puppeteer')」。如果沒有這一行,就算安裝了套件,n8n 也會為了安全而阻止它被載入。
RUN npm install -g n8n@${N8N_VERSION} puppeteer --omit=dev
作用:這是在安裝 n8n 的同時,也把 puppeteer 這個 Node.js 套件一起安裝到全域環境中。這樣當你的 Code 節點執行 require('puppeteer') 時,系統就能成功找到並載入它。

Files changed (1) hide show
  1. Dockerfile +6 -4
Dockerfile CHANGED
@@ -3,7 +3,6 @@ FROM node:20-alpine
3
 
4
  # --- Build-time arguments ---
5
  ARG N8N_VERSION=latest
6
- # 基礎映像檔已包含 node 用戶,其家目錄在 /home/node
7
  ARG N8N_PATH=/home/node/.n8n
8
 
9
  # --- 環境變數設定 ---
@@ -15,6 +14,9 @@ ENV N8N_DISABLE_PRODUCTION_MAIN_PROCESS_BETA=true
15
  ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
16
  ENV PUPPETEER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage --disable-gpu"
17
 
 
 
 
18
  # --- 安裝系統依賴 ---
19
  USER root
20
  RUN apk add --no-cache \
@@ -22,8 +24,9 @@ RUN apk add --no-cache \
22
  chromium \
23
  procps-ng
24
 
25
- # --- 安裝 n8n ---
26
- RUN npm install -g n8n@${N8N_VERSION} --omit=dev
 
27
 
28
  # --- 設定權限 ---
29
  RUN mkdir -p ${N8N_PATH} && \
@@ -37,7 +40,6 @@ WORKDIR /home/node
37
  EXPOSE 5678
38
 
39
  # --- 啟動 n8n 並在日誌中顯示公開網址 ---
40
- # 這是修改的關鍵部分
41
  CMD sh -c 'echo "-----------------------------------------------------" && \
42
  echo "n8n is running!" && \
43
  echo "Access it at: https://${SPACE_HOST}" && \
 
3
 
4
  # --- Build-time arguments ---
5
  ARG N8N_VERSION=latest
 
6
  ARG N8N_PATH=/home/node/.n8n
7
 
8
  # --- 環境變數設定 ---
 
14
  ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
15
  ENV PUPPETEER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage --disable-gpu"
16
 
17
+ # --- 關鍵修正:允許 n8n 的 Code 節點使用 puppeteer ---
18
+ ENV NODE_FUNCTION_ALLOW_EXTERNAL=puppeteer
19
+
20
  # --- 安裝系統依賴 ---
21
  USER root
22
  RUN apk add --no-cache \
 
24
  chromium \
25
  procps-ng
26
 
27
+ # --- 安裝 n8n 和 Puppeteer 套件 ---
28
+ # 關鍵修正:同時安裝 n8n puppeteer
29
+ RUN npm install -g n8n@${N8N_VERSION} puppeteer --omit=dev
30
 
31
  # --- 設定權限 ---
32
  RUN mkdir -p ${N8N_PATH} && \
 
40
  EXPOSE 5678
41
 
42
  # --- 啟動 n8n 並在日誌中顯示公開網址 ---
 
43
  CMD sh -c 'echo "-----------------------------------------------------" && \
44
  echo "n8n is running!" && \
45
  echo "Access it at: https://${SPACE_HOST}" && \