xây dựng docker
This commit is contained in:
163
HUONG_DAN_DOCKER.md
Normal file
163
HUONG_DAN_DOCKER.md
Normal file
@@ -0,0 +1,163 @@
|
||||
# 🎡 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
|
||||
```
|
||||
|
||||
## 🔧 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ẻ! 🎉**
|
||||
Reference in New Issue
Block a user