chakasoft commited on
Commit
00ea884
·
verified ·
1 Parent(s): cda93c5

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +32 -11
Dockerfile CHANGED
@@ -7,30 +7,51 @@ ARG N8N_PATH=/home/node/.n8n
7
 
8
  # --- 環境變數設定 ---
9
  ENV N8N_USER_FOLDER=$N8N_PATH
10
- ENV DB_TYPE=sqlite
11
  ENV N8N_DISABLE_PRODUCTION_MAIN_PROCESS_BETA=true
12
 
13
- # --- Puppeteer/Chromium 優化環境變數 ---
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 \
23
  git \
 
 
 
 
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} && \
33
- chown -R node:node /home/node
34
 
35
  # --- 切換到非 root 用戶 ---
36
  USER node
 
7
 
8
  # --- 環境變數設定 ---
9
  ENV N8N_USER_FOLDER=$N8N_PATH
 
10
  ENV N8N_DISABLE_PRODUCTION_MAIN_PROCESS_BETA=true
11
 
12
+ # --- 關鍵修正:允許 n8n 的 Code 節點使用外部模組 ---
13
+ # 同時允許 puppeteer 和 playwright,以提供最大彈性
14
+ ENV NODE_FUNCTION_ALLOW_EXTERNAL=puppeteer,playwright
15
 
16
+ # --- 資料庫設定 (連接至 Supabase) ---
17
+ # 注意:這些值將由 Hugging Face Secrets 提供,此處僅為宣告
18
+ ENV DB_TYPE=postgresdb
19
+ ENV DB_POSTGRESDB_HOST=""
20
+ ENV DB_POSTGRESDB_PORT=5432
21
+ ENV DB_POSTGRESDB_DATABASE=postgres
22
+ ENV DB_POSTGRESDB_USER=postgres
23
+ ENV DB_POSTGRESDB_PASSWORD=""
24
+ ENV DB_POSTGRESDB_SSL=true # Supabase 需要 SSL 連線
25
 
26
  # --- 安裝系統依賴 ---
27
+ # 關鍵修正:為 Playwright 添加必要的系統依賴
28
  USER root
29
  RUN apk add --no-cache \
30
  git \
31
+ procps-ng \
32
+ # Playwright 的瀏覽器依賴 (Alpine Linux)
33
+ udev \
34
+ ttf-freefont \
35
  chromium \
36
+ nss \
37
+ freetype \
38
+ harfbuzz \
39
+ ca-certificates \
40
+ dbus-glib \
41
+ fontconfig
42
 
43
+ # --- 安裝 n8n 和 Playwright 套件 ---
44
+ # 關鍵修正:同時安裝 n8n 和 playwright
45
+ # 如果你不再需要 puppeteer,可以從此處移除
46
+ RUN npm install -g n8n@${N8N_VERSION} playwright puppeteer --omit=dev
47
+
48
+ # 關鍵修正:安裝 Playwright 的瀏覽器二進位檔案
49
+ # 這會下載 Chromium, Firefox, WebKit 等瀏覽器到 Docker 映像檔中
50
+ RUN npx playwright install --with-deps
51
 
52
  # --- 設定權限 ---
53
  RUN mkdir -p ${N8N_PATH} && \
54
+ chown -R node:node /home/node /usr/lib/node_modules
55
 
56
  # --- 切換到非 root 用戶 ---
57
  USER node