innofacisteven commited on
Commit
0470282
·
verified ·
1 Parent(s): d0bf4d4

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +41 -34
Dockerfile CHANGED
@@ -1,34 +1,41 @@
1
- # --- 1. 使用 Node.js 20 作為基礎映像 ---
2
- FROM node:20-alpine
3
-
4
- # --- 2. 以 root 權限安裝系統和全域套件 ---
5
- USER root
6
- RUN apk add --no-cache \
7
- git \
8
- python3 \
9
- py3-pip \
10
- make \
11
- g++ \
12
- build-base \
13
- libc6-compat
14
-
15
- # 全域安裝 n8n 和 ngrok
16
- RUN npm install -g n8n ngrok
17
-
18
- # --- 3. 建立資料夾並修正權限 ---
19
- # 【核心修正】在修改權限前,先建立 /data 資料夾。
20
- # -p 參數可以確保即使父目錄不存在也能成功建立。
21
- RUN mkdir -p /data
22
-
23
- # /data 資料夾的擁有權交給 'node' 使用者
24
- RUN chown -R node:node /data
25
-
26
- # --- 4. 切換到已存在的 'node' 使用者 ---
27
- USER node
28
-
29
- # --- 5. 設定工作目錄並執行應用程式 ---
30
- WORKDIR /data
31
- EXPOSE 7860
32
-
33
- # 啟動指令保持不變
34
- CMD ["sh", "-c", "ngrok config add-authtoken $NGROK_AUTHTOKEN && ngrok http --log stdout $N8N_PORT & n8n start"]
 
 
 
 
 
 
 
 
1
+ # --- 1. 使用 Node.js 20 作為基礎映像 ---
2
+ FROM node:20-alpine
3
+
4
+ # --- 2. 以 root 權限安裝系統和全域套件 ---
5
+ USER root
6
+ RUN apk add --no-cache \
7
+ git \
8
+ python3 \
9
+ py3-pip \
10
+ make \
11
+ g++ \
12
+ build-base \
13
+ libc6-compat
14
+
15
+ # 全域安裝 n8n 和 ngrok
16
+ # RUN npm install -g n8n ngrok
17
+
18
+ # 全域安裝 n8n
19
+ RUN npm install -g n8n
20
+
21
+ # --- 3. 建立資料夾並修正權限 ---
22
+ # 在修改權限前,先建立 /data 資料夾。
23
+ # -p 參數可以確保即使父目錄不存在也能成功建立。
24
+ RUN mkdir -p /data
25
+ # 將 /data 資料夾的擁有權交給 'node' 使用者
26
+ RUN chown -R node:node /data
27
+ # 確保 n8n 配置文件權限為 0600
28
+ RUN mkdir -p /data/.n8n && chown node:node /data/.n8n && chmod 0600 /data/.n8n
29
+
30
+ # --- 4. 切換到已存在的 'node' 使用者 ---
31
+ USER node
32
+
33
+ # --- 5. 設定工作目錄並執行應用程式 ---
34
+ WORKDIR /data
35
+ EXPOSE 7860
36
+
37
+ # 啟動指令
38
+ #CMD ["sh", "-c", "ngrok config add-authtoken $NGROK_AUTHTOKEN && ngrok http --log stdout $N8N_PORT & n8n start"]
39
+
40
+ # 啟動 n8nk
41
+ CMD ["n8n", "start"]