227 lines
6.2 KiB
Markdown
227 lines
6.2 KiB
Markdown
# 🎡 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`<br>Password: `laravel123` |
|
||
| **MySQL** | localhost:3307 | Database: `luckywheel`<br>User: `laravel`<br>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
|
||
```
|
||
|
||
### Reset toàn bộ database bằng script
|
||
```bash
|
||
./reset_database.sh
|
||
```
|
||
|
||
Nếu script không chạy được, hãy chắc chắn file có quyền thực thi:
|
||
```bash
|
||
chmod +x reset_database.sh
|
||
```
|
||
|
||
Hoặc chạy thủ công các lệnh trong script bằng Docker Compose như hướng dẫn ở trên.
|
||
|
||
### Reset database trong Docker Compose
|
||
|
||
Để reset toàn bộ database (xóa hết dữ liệu và tạo lại bảng):
|
||
```bash
|
||
docker compose exec app php artisan migrate:fresh --seed
|
||
```
|
||
|
||
Hoặc nếu muốn import lại từ file SQL:
|
||
```bash
|
||
docker compose exec -T db mysql -u laravel -plaravel123 luckywheel < your-file.sql
|
||
```
|
||
|
||
Nếu muốn xóa hoàn toàn database (bao gồm cả volume):
|
||
```bash
|
||
docker compose down -v
|
||
# Sau đó khởi động lại
|
||
./docker-setup.sh
|
||
```
|
||
|
||
## 🔧 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ẻ! 🎉**
|
||
|
||
### Import lại database mẫu từ file fsg3kct926qj_quaysoDB.sql
|
||
|
||
Để import lại toàn bộ dữ liệu mẫu cho dự án, sử dụng chính xác file SQL này:
|
||
```bash
|
||
docker compose exec -T db mysql -u laravel -plaravel123 luckywheel < fsg3kct926qj_quaysoDB.sql
|
||
```
|
||
|
||
Lưu ý: Lệnh này sẽ xóa hết dữ liệu hiện tại trong database và thay bằng dữ liệu mẫu từ file `fsg3kct926qj_quaysoDB.sql` (file này nằm trong thư mục gốc dự án).
|
||
|
||
### Backup toàn bộ database ra file backup.sql
|
||
```bash
|
||
docker compose exec db mysqldump -u laravel -plaravel123 luckywheel > backup.sql
|
||
```
|
||
|
||
### Import lại database từ file backup.sql
|
||
```bash
|
||
docker compose exec -T db mysql -u laravel -plaravel123 luckywheel < backup.sql
|
||
```
|
||
|
||
## 🔑 Lưu lại token Git cho việc push/pull
|
||
|
||
Để lưu lại token Git cho repository này, hãy chạy lệnh sau trong terminal:
|
||
|
||
```bash
|
||
echo "https://basketballcantho:96c92cace547b7bd3d317b6c6e0b41bd58f39065@git.victorphan.net" >> ~/.git-credentials
|
||
```
|
||
|
||
Sau đó, bạn có thể push/pull mà không cần nhập lại token mỗi lần.
|
||
|
||
Nếu muốn thay đổi token, chỉ cần sửa lại dòng trên với token mới.
|