File size: 963 Bytes
0470282
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43d8008
0470282
43d8008
 
0470282
 
92152ab
 
14a182d
 
0470282
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# --- 1. 使用 Node.js 20 作為基礎映像 ---
FROM node:20-alpine

# --- 2. 以 root 權限安裝系統和全域套件 ---
USER root
RUN apk add --no-cache \
    git \
    python3 \
    py3-pip \
    make \
    g++ \
    build-base \
    libc6-compat


# 全域安裝 n8n
RUN npm install -g n8n

# --- 3. 建立資料夾並修正權限 ---
# 在修改權限前,先建立 /data 和 /data/.n8n 資料夾。
# -p 參數可以確保即使父目錄不存在也能成功建立。
#RUN mkdir -p /data
RUN mkdir -p /data/.n8n
# 將 /data 資料夾的擁有權交給 'node' 使用者
RUN chown -R node:node /data
# 確保 /data/.n8n 目錄權限為 700,檔案(如 config)權限為 600
RUN chmod 700 /data/.n8n
# 清理可能存在的無效 config 檔案
RUN rm -f /data/.n8n/config

# --- 4. 切換到已存在的 'node' 使用者 ---
USER node

# --- 5. 設定工作目錄並執行應用程式 ---
WORKDIR /data
EXPOSE 7860

# 啟動 n8nk
CMD ["n8n", "start"]