Update Dockerfile
Browse files- Dockerfile +24 -8
Dockerfile
CHANGED
|
@@ -1,17 +1,33 @@
|
|
| 1 |
-
|
|
|
|
| 2 |
|
|
|
|
| 3 |
USER root
|
| 4 |
|
| 5 |
-
#
|
| 6 |
-
|
| 7 |
-
# Đây là thư mục hệ thống, không bị Hugging Face ghi đè.
|
| 8 |
-
RUN npm install -g n8n-nodes-ultimate
|
| 9 |
|
| 10 |
-
#
|
| 11 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
ENV N8N_CUSTOM_EXTENSIONS=/usr/local/lib/node_modules/n8n-nodes-ultimate
|
| 13 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
USER node
|
| 15 |
|
| 16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
CMD ["n8n", "start"]
|
|
|
|
| 1 |
+
# 1. Dùng Node v20 chính chủ (bản slim cho nhẹ nhưng đủ thư viện)
|
| 2 |
+
FROM node:20-slim
|
| 3 |
|
| 4 |
+
# Chuyển sang quyền root để cài cắm thoải mái
|
| 5 |
USER root
|
| 6 |
|
| 7 |
+
# 2. Cài thêm các tool hệ thống cơ bản (đôi khi n8n cần python/build tools để compile node)
|
| 8 |
+
RUN apt-get update && apt-get install -y python3 build-essential git
|
|
|
|
|
|
|
| 9 |
|
| 10 |
+
# 3. Cài n8n VÀ n8n-nodes-ultimate ở dạng GLOBAL
|
| 11 |
+
# --unsafe-perm để tránh npm chặn quyền root
|
| 12 |
+
RUN npm install -g n8n n8n-nodes-ultimate --unsafe-perm
|
| 13 |
+
|
| 14 |
+
# 4. QUAN TRỌNG NHẤT: Ép đường dẫn
|
| 15 |
+
# Trên image node:20-slim, global modules nằm ở /usr/local/lib/node_modules
|
| 16 |
+
# Thư mục này nằm sâu trong hệ thống, Hugging Face KHÔNG THỂ ghi đè được.
|
| 17 |
ENV N8N_CUSTOM_EXTENSIONS=/usr/local/lib/node_modules/n8n-nodes-ultimate
|
| 18 |
|
| 19 |
+
# 5. Thiết lập quyền và user cho Hugging Face
|
| 20 |
+
# Tạo thư mục data và gán quyền cho user 'node' (user 1000)
|
| 21 |
+
RUN mkdir -p /home/node/.n8n && \
|
| 22 |
+
chown -R node:node /home/node/.n8n && \
|
| 23 |
+
chmod -R 755 /usr/local/lib/node_modules
|
| 24 |
+
|
| 25 |
+
# Chuyển về user node để chạy (bắt buộc trên Hugging Face)
|
| 26 |
USER node
|
| 27 |
|
| 28 |
+
# 6. Cấu hình port và lệnh chạy
|
| 29 |
+
ENV PORT=7860
|
| 30 |
+
EXPOSE 7860
|
| 31 |
+
|
| 32 |
+
# Chạy n8n
|
| 33 |
CMD ["n8n", "start"]
|