4.2 KiB
4.2 KiB
🎡 HƯỚNG DẪN SỬ DỤNG DOCKER - DỰ ÁN LUCKY WHEEL
🚀 Khởi động dự án lần đầu
./docker-setup.sh
🌐 Truy cập ứng dụng
| Dịch vụ | URL | Thông tin đăng nhập |
|---|---|---|
| Ứng dụng Web | http://localhost:8080 | - |
| PHPMyAdmin | http://localhost:8081 | User: laravelPassword: laravel123 |
| MySQL | localhost:3307 | Database: luckywheelUser: laravelPassword: laravel123 |
| Redis | localhost:6380 | - |
📝 Các lệnh thường dùng
Quản lý containers
# Xem trạng thái containers
docker compose ps
# Xem logs
docker compose logs -f
# Dừng containers
docker compose down
# Khởi động lại
docker compose restart
# Dừng và xóa hoàn toàn (bao gồm dữ liệu)
docker compose down -v
Làm việc với ứng dụng
# Vào container app
docker compose exec app bash
# Chạy lệnh artisan
docker compose exec app php artisan migrate
docker compose exec app php artisan db:seed
docker compose exec app php artisan tinker
# Clear cache
docker compose exec app php artisan cache:clear
docker compose exec app php artisan config:clear
docker compose exec app php artisan view:clear
# Cài package mới
docker compose exec app composer require package-name
Làm việc với database
# Truy cập MySQL CLI
docker compose exec db mysql -u laravel -plaravel123 luckywheel
# Backup database
docker compose exec db mysqldump -u laravel -plaravel123 luckywheel > backup.sql
# Import database
docker compose exec -T db mysql -u laravel -plaravel123 luckywheel < backup.sql
# Reset database
docker compose exec app php artisan migrate:fresh --seed
🔧 Sửa lỗi thường gặp
Lỗi quyền truy cập (Permission denied)
docker compose exec app chmod -R 777 /var/www/storage /var/www/bootstrap/cache
Lỗi không kết nối được MySQL
# Restart MySQL
docker compose restart db
# Xem logs MySQL
docker compose logs db
Port bị chiếm
Mở file docker-compose.yml và thay đổi port:
"8080:80"→"8081:80"(cho app)"3307:3306"→"3308:3306"(cho MySQL)
Rebuild lại toàn bộ
docker compose down -v
docker compose build --no-cache
docker compose up -d
📂 Cấu trúc Docker
LuckyWheel/
├── Dockerfile # Build image PHP/Laravel
├── docker-compose.yml # Cấu hình services
├── .env.docker # Environment cho Docker
├── docker-setup.sh # Script khởi động tự động
├── docker-stop.sh # Script dừng containers
└── docker/
├── nginx/
│ └── default.conf # Cấu hình Nginx
├── supervisor/
│ └── supervisord.conf # Cấu hình Supervisor
└── mysql/
└── my.cnf # Cấu hình MySQL
💾 Import/Export dữ liệu
Import file SQL có sẵn
docker compose exec -T db mysql -u laravel -plaravel123 luckywheel < your-file.sql
Backup toàn bộ database
docker compose exec db mysqldump -u laravel -plaravel123 luckywheel > backup_$(date +%Y%m%d_%H%M%S).sql
🎯 Workflow phát triển
- Sửa code: Chỉnh sửa file PHP/Blade trực tiếp, thay đổi tự động reflect
- Chạy migration:
docker compose exec app php artisan migrate - Test: Truy cập http://localhost:8080 để xem kết quả
- Xem logs:
docker compose logs -f app - Debug:
docker compose exec app php artisan tinker
🛑 Dừng dự án
# Dừng containers (giữ nguyên dữ liệu)
./docker-stop.sh
# Hoặc
docker compose down
# Dừng và XÓA toàn bộ dữ liệu
docker compose down -v
ℹ️ Thông tin thêm
- Source code được mount từ host → thay đổi code không cần rebuild
- Database được lưu trong Docker volume
dbdata - Redis data được lưu trong volume
redisdata - Logs nằm trong
/var/log/supervisor/bên trong container
🆘 Cần trợ giúp?
Xem file DOCKER_README.md để có hướng dẫn chi tiết hơn.
Chúc bạn code vui vẻ! 🎉