chakasoft commited on
Commit
2e5f6b6
·
verified ·
1 Parent(s): 11acc9e

Update Dockerfile

Browse files

升級 Node.js 版本:第一行從 FROM node:18-alpine 改為 FROM node:20-alpine。這將解決所有 EBADENGINE 的版本不相容警告。
移除多餘的用戶建立指令:刪除了 addgroup ... && adduser ... 那一行,因為 node:20-alpine 映像檔已經幫我們做好了。我們只保留了建立資料夾和設定權限的指令。

Files changed (1) hide show
  1. Dockerfile +10 -10
Dockerfile CHANGED
@@ -1,16 +1,14 @@
1
- # 使用官方 Node.js 18 Alpine 鏡像,它體積小
2
- FROM node:18-alpine
3
 
4
- # --- Build-time arguments (可選,但保持良好習慣) ---
5
  ARG N8N_VERSION=latest
 
6
  ARG N8N_PATH=/home/node/.n8n
7
 
8
  # --- 環境變數設定 ---
9
- # 告訴 n8n 在哪裡儲存資料
10
  ENV N8N_USER_FOLDER=$N8N_PATH
11
- # 讓 n8n 使用 SQLite,最適合單機運行
12
  ENV DB_TYPE=sqlite
13
- # 避免 n8n 在容器內寫入 package.json
14
  ENV N8N_DISABLE_PRODUCTION_MAIN_PROCESS_BETA=true
15
 
16
  # --- Puppeteer/Chromium 優化環境變數 ---
@@ -22,18 +20,20 @@ USER root
22
  RUN apk add --no-cache \
23
  git \
24
  chromium \
25
- procps-ng # <--- 新增這一行,用於監控系統資源
26
 
27
  # --- 安裝 n8n ---
 
28
  RUN npm install -g n8n@${N8N_VERSION} --omit=dev
29
 
30
- # --- 建立非 root 用戶並設定權限 ---
31
- RUN addgroup -g 1000 node && \
32
- adduser -u 1000 -G node -h /home/node -s /bin/sh -D node
33
  RUN mkdir -p ${N8N_PATH} && \
34
  chown -R node:node /home/node
35
 
36
  # --- 切換到非 root 用戶 ---
 
37
  USER node
38
  WORKDIR /home/node
39
 
 
1
+ # 步驟 1: 升級 Node.js 版本到 20,以符合最新版 n8n 的要求
2
+ 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
  # --- 環境變數設定 ---
 
10
  ENV N8N_USER_FOLDER=$N8N_PATH
 
11
  ENV DB_TYPE=sqlite
 
12
  ENV N8N_DISABLE_PRODUCTION_MAIN_PROCESS_BETA=true
13
 
14
  # --- Puppeteer/Chromium 優化環境變數 ---
 
20
  RUN apk add --no-cache \
21
  git \
22
  chromium \
23
+ procps-ng
24
 
25
  # --- 安裝 n8n ---
26
+ # --omit=dev 忽略開發依賴,減小體積
27
  RUN npm install -g n8n@${N8N_VERSION} --omit=dev
28
 
29
+ # --- 設定權限 ---
30
+ # 步驟 2: 移除多餘的用戶建立指令,因為 'node' 用戶已存在。
31
+ # 我們只需要確保 n8n 的資料夾是屬於 'node' 用戶的。
32
  RUN mkdir -p ${N8N_PATH} && \
33
  chown -R node:node /home/node
34
 
35
  # --- 切換到非 root 用戶 ---
36
+ # 基礎映像檔已經有這個用戶了,我們直接切換過去
37
  USER node
38
  WORKDIR /home/node
39