# 🎡 HƯỚNG DẪN SỬ DỤNG DOCKER - DỰ ÁN LUCKY WHEEL ## 🚀 Khởi động dự án lần đầu ```bash ./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: `laravel`
Password: `laravel123` | | **MySQL** | localhost:3307 | Database: `luckywheel`
User: `laravel`
Password: `laravel123` | | **Redis** | localhost:6380 | - | ## 📝 Các lệnh thường dùng ### Quản lý containers ```bash # 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 ```bash # 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 ```bash # 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) ```bash docker compose exec app chmod -R 777 /var/www/storage /var/www/bootstrap/cache ``` ### Lỗi không kết nối được MySQL ```bash # 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ộ ```bash 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 ```bash docker compose exec -T db mysql -u laravel -plaravel123 luckywheel < your-file.sql ``` ### Backup toàn bộ database ```bash docker compose exec db mysqldump -u laravel -plaravel123 luckywheel > backup_$(date +%Y%m%d_%H%M%S).sql ``` ## 🎯 Workflow phát triển 1. **Sửa code**: Chỉnh sửa file PHP/Blade trực tiếp, thay đổi tự động reflect 2. **Chạy migration**: `docker compose exec app php artisan migrate` 3. **Test**: Truy cập http://localhost:8080 để xem kết quả 4. **Xem logs**: `docker compose logs -f app` 5. **Debug**: `docker compose exec app php artisan tinker` ## 🛑 Dừng dự án ```bash # 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](DOCKER_README.md) để có hướng dẫn chi tiết hơn. --- **Chúc bạn code vui vẻ! 🎉**