🗂 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 host | Vị 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ống | Giải pháp |
---|---|
File JSON không thấy | Kiểm tra đúng volume mapping, đường dẫn container /home/node/.n8n/ . |
File JSON sai encoding | Lư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ỗi | Và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ộ.