chakasoft commited on
Commit
397cf0a
·
verified ·
1 Parent(s): b9d0f44

Create dockerfile

Browse files
Files changed (1) hide show
  1. dockerfile +44 -0
dockerfile ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 優化環境變數 ---
17
+ ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
18
+ ENV PUPPETEER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage --disable-gpu"
19
+
20
+ # --- 安裝系統依賴 ---
21
+ 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
+
40
+ # --- 開放 n8n 預設端口 ---
41
+ EXPOSE 5678
42
+
43
+ # --- 啟動 n8n ---
44
+ CMD ["n8n"]