DATMarketing

🚀 Hướng dẫn Import Workflow vào n8n (docker compose)

🗂 Mục đích

  • Import file workflow .json vào server n8n chạy bằng Docker Compose.
  • Khắc phục lỗi ENOENT: no such file or directory khi file không nằm đúng vị trí volume.
  • Hiểu cách mapping volume, đường dẫn trên máy host ↔ container để tránh lỗi thường gặp.

✅ 1. Tổng quan về cấu trúc Volume

Khi bạn chạy n8n bằng Docker Compose, file docker-compose.yml thường khai báo volume:

volumes:
- /home/n8n:/home/node/.n8n

Điều này nghĩa là:

  • Thư mục trên máy chủ (host): /home/n8n
  • Được mount sang bên trong container tại: /home/node/.n8n

QUY TẮC VÀNG: Nếu file bạn lưu ở /home/n8n trên host → bên trong container nó sẽ nằm ở /home/node/.n8n.

✅ 2. Ví dụ thực tế

Vị trí file JSON trên hostVị trí thực tế trong container
/home/n8n/my_workflow.json/home/node/.n8n/my_workflow.json
/home/n8n/workflows/my_workflow.json/home/node/.n8n/workflows/my_workflow.json

✅ 3. Các bước thực hiện chuẩn

🎯 Bước 1: Copy file JSON vào đúng thư mục

cp my_workflow.json /home/n8n/workflows/

🎯 Bước 2: Kiểm tra file có nằm trong container

docker-compose exec n8n /bin/sh

# Bên trong container:
ls -la /home/node/.n8n
ls -la /home/node/.n8n/workflows

Nếu chưa thấy file, hãy copy lại:

docker cp /home/n8n/workflows/my_workflow.json n8n_n8n_1:/home/node/.n8n/workflows/

🎯 Bước 3: Chạy lệnh import đúng đường dẫn

n8n import:workflow --input=/home/node/.n8n/workflows/my_workflow.json

Lưu ý: Luôn dùng đúng đường dẫn bên trong container. Không dùng /home/n8n/... bên trong container vì đó là đường dẫn trên host!

🎯 Bước 4: Restart container (nếu cần)

docker-compose restart n8n

✅ 4. Kiểm tra kết quả

  • Truy cập trang n8n ➜ Đăng nhập ➜ Vào Workflows, kiểm tra workflow mới.
  • Nếu không thấy, xem log container: docker-compose logs -f n8n
  • Kiểm tra file JSON có chuẩn không, phải bọc {} đúng.

🟢 TIPS KINH ĐIỂN

Tình huốngGiải pháp
File JSON không thấyKiểm tra đúng volume mapping, đường dẫn container /home/node/.n8n/.
File JSON sai encodingLưu lại UTF-8 không BOM bằng VSCode.
Workflow bị ẩnĐảm bảo trường "active": true trong JSON.
Credentials lỗiVào n8n UI ➜ Credentials ➜ Tạo mới và gán lại tên.

✅ 5. Lệnh mẫu tổng hợp

# Copy file vào volume
cp my_workflow.json /home/n8n/workflows/

# Exec vào container
docker-compose exec n8n /bin/sh

# Kiểm tra file
ls /home/node/.n8n/workflows

# Import workflow
n8n import:workflow --input=/home/node/.n8n/workflows/my_workflow.json

# Thoát & restart
exit
docker-compose restart n8n

🎉 Kết luận

✔️ Hiểu đúng Volume Mapping → Không còn lỗi đường dẫn!

✔️ Luôn chạy lệnh n8n import:workflow với đường dẫn thực bên trong container.

✔️ Nếu làm đúng, bạn sẽ import thành công ngay, không còn lỗi ENOENT phiền toái nữa!

Chúc bạn triển khai n8n thành công!
Bạn có thể sao chép toàn bộ bài này để chia sẻ cho cộng đồng DevOps, Automation hoặc team nội bộ.

BÀI VIẾT MỚI
TÓM TẮT BÀI VIẾT