Troubleshooting
Hướng dẫn khắc phục các lỗi thường gặp trong Smart Forecast.
Docker Compose Errors
Network not found
Error: network smart-forecast_smart-forecast-net not found
Giải pháp:
docker compose down
docker compose up -d
Port already in use
Error: bind: address already in use
Giải pháp:
# Tìm process đang dùng port
# Windows
netstat -ano | findstr :5432
taskkill /PID <PID> /F
# Linux/macOS
lsof -i :5432
kill -9 <PID>
# Hoặc đổi port trong docker-compose.yml
ports:
- "5433:5432"
Container Health Issues
Container status "unhealthy"
Kiểm tra:
# Xem health logs
docker inspect --format='{{json .State.Health}}' <container_name>
# Xem container logs
docker compose logs <service_name>
Giải pháp:
# Restart container
docker compose restart <service_name>
# Hoặc recreate
docker compose up -d --force-recreate <service_name>
Orion-LD không healthy
Kiểm tra:
docker compose logs orion
curl http://localhost:1026/version
Giải pháp:
# Đảm bảo MongoDB đang chạy
docker compose ps mongodb
# Restart
docker compose restart orion
PostgreSQL không healthy
Kiểm tra:
docker compose logs postgres
docker compose exec postgres pg_isready -U admin
Giải pháp:
# Kiểm tra .env
cat .env | grep POSTGRES
# Reset (xóa data)
docker compose down -v
docker compose up -d
Database Connection
Cannot connect to PostgreSQL
FATAL: password authentication failed
Giải pháp:
# 1. Kiểm tra environment
cat backend/.env | grep DATABASE_URL
# 2. Reset database
docker compose down -v
docker compose up -d
# 3. Test connection
docker compose exec postgres psql -U admin -d smart_forecast_db
Cannot connect to MongoDB
Giải pháp:
# Kiểm tra container
docker compose ps mongodb
# Test connection
docker compose exec mongodb mongosh
# Ping từ orion
docker compose exec orion ping mongodb
Network Issues
Services không connect được
# Xem network
docker network inspect smart-forecast-net
# Test ping
docker compose exec orion ping mongodb
docker compose exec backend ping postgres
Giải pháp:
# Recreate network
docker compose down
docker network prune
docker compose up -d
Port Conflicts
| Service | Default Port | Alternative |
|---|---|---|
| Orion-LD | 1026 | 1027 |
| PostgreSQL | 5432 | 5433 |
| MinIO API | 9000 | 9002 |
| MinIO Console | 9001 | 9003 |
| Backend | 8000 | 8001 |
| Web | 3000 | 3001 |
Đổi port:
# docker-compose.yml
ports:
- '5433:5432' # External:Internal
Mobile App Issues
Cannot connect to API
Network request failed
Nguyên nhân: Mobile không thể dùng localhost
Giải pháp:
# Tìm IP máy
# Windows
ipconfig
# macOS/Linux
ifconfig
# Cập nhật mobile/.env
EXPO_PUBLIC_BACKEND_API_URL=http://192.168.1.100:8000/api/v1
Map không hiển thị
Giải pháp:
- Kiểm tra API key MapLibre
- Kiểm tra kết nối internet
- Restart Expo dev server
Backend Issues
Database schema issues
# TypeORM đang dùng synchronize trong development
# Kiểm tra DATABASE_URL trong backend/.env
cat backend/.env | grep DATABASE_URL
# Restart backend để re-sync schema
pnpm run dev:backend
JWT authentication fails
Giải pháp:
# Kiểm tra JWT_SECRET
cat backend/.env | grep JWT_SECRET
# Đảm bảo không có khoảng trắng/newline
# Restart backend
Web Dashboard Issues
Build fails
# Clear cache
rm -rf web/.next
pnpm run build:web
API calls fail
Kiểm tra:
# CORS configuration trong backend
# Environment variables
cat web/.env.local
Volume Issues
Permission denied
# Reset volumes
docker compose down -v
docker volume prune
docker compose up -d
Out of space
# Xem disk usage
docker system df
# Cleanup
docker system prune -a --volumes
Debugging Commands
Xem logs
# Tất cả services
docker compose logs
# Realtime
docker compose logs -f
# Service cụ thể
docker compose logs -f orion
# 100 dòng cuối
docker compose logs --tail=100
Exec vào container
# Bash shell
docker compose exec orion bash
# PostgreSQL
docker compose exec postgres psql -U admin -d smart_forecast_db
# MongoDB
docker compose exec mongodb mongosh
Resource monitoring
# Real-time stats
docker stats
# Một lần
docker stats --no-stream
Emergency Reset
Khi tất cả không hoạt động:
# 1. Dừng tất cả
docker compose down -v
# 2. Xóa tất cả
docker system prune -a --volumes
# 3. Restart Docker
# 4. Pull images
docker compose pull
# 5. Khởi động
docker compose up -d
# 6. Kiểm tra
docker compose ps
Health Check Checklist
Sau khi khởi động:
# 1. Containers đang chạy
docker compose ps
# 2. Test endpoints
curl http://localhost:1026/version # Orion
curl http://localhost:8000/api/v1/health # Backend
curl http://localhost:9000/minio/health/live # MinIO
# 3. Database connections
docker compose exec postgres psql -U admin -d smart_forecast_db -c "SELECT 1;"
docker compose exec mongodb mongosh --eval "db.adminCommand('ping')"
# 4. Xem errors
docker compose logs | grep -i error
Cần thêm trợ giúp?
- Xem logs:
docker compose logs -f - FIWARE Documentation
- Docker Documentation
- Tạo issue trên GitHub
Tiếp theo
- Triển khai - Docker Compose setup
- Hướng dẫn phát triển - Development workflow
- Biến môi trường - Environment configuration