Files
luckywheel/HUONG_DAN_DOCKER.md
2026-01-14 14:51:03 +07:00

4.2 KiB
Raw Blame History

🎡 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: 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

# 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

  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

# 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ẻ! 🎉