tutoihoc commited on
Commit
cbe37de
·
verified ·
1 Parent(s): 374819c

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +10 -15
Dockerfile CHANGED
@@ -2,22 +2,17 @@ FROM n8nio/n8n:latest
2
 
3
  USER root
4
 
5
- # 1. Làm đúng theo docs: Tạo thư mục ~/.n8n/nodes
6
- # Lưu ý: Trong n8n image, ~ chính là /home/node
7
- RUN mkdir -p /home/node/.n8n/nodes
 
8
 
9
- # 2. Chuyển vào thư mục đó và cài đặt
10
- WORKDIR /home/node/.n8n/nodes
11
 
12
- # Cài đặt gói nodes
13
- RUN npm install n8n-nodes-ultimate
14
-
15
- # 3. Quan trọng: Phân quyền lại cho user node
16
- # Để đảm bảo n8n (chạy user node) đọc được file do root tạo
17
- RUN chown -R node:node /home/node/.n8n
18
-
19
- # 4. Quay về user mặc định
20
  USER node
21
 
22
- ENTRYPOINT []
23
- CMD ["n8n", "start"]
 
 
 
2
 
3
  USER root
4
 
5
+ # 1. Cài đặt node vào một thư mục TẠM (không phải ~/.n8n để tránh bị mount đè)
6
+ WORKDIR /tmp/custom-nodes
7
+ RUN npm init -y && \
8
+ npm install n8n-nodes-ultimate
9
 
10
+ # 2. Cấp quyền cho user node sở hữu thư mục tạm này
11
+ RUN chown -R node:node /tmp/custom-nodes
12
 
 
 
 
 
 
 
 
 
13
  USER node
14
 
15
+ # 3. CHIÊU CUỐI: Dùng lệnh CMD để copy file KHI SERVER CHẠY
16
+ # Logic: Tạo thư mục nodes (nếu chưa có) -> Copy gói node từ thư mục tạm vào đó -> Rồi mới chạy n8n
17
+ # Lúc này ổ cứng đã mount xong rồi, nên copy vào là nó nằm đó luôn.
18
+ CMD ["sh", "-c", "mkdir -p /home/node/.n8n/nodes && cp -r /tmp/custom-nodes/node_modules/n8n-nodes-ultimate /home/node/.n8n/nodes/ && n8n start"]