1. Sport API
Sport
  • Sport Site
    • Tài liệu triển khai dự án Sport Site
    • Tài liệu triển khai dự án Landing Page
    • Tài liệu triển khai dự án Newslooks
  • Sport API
    • Tài liệu triển khai dự án KSport API
    • Tài liệu triển khai dự án WSport API
    • Tài liệu triển khai dự án WSport API Game
  • Sport DB
    • Tài liệu triển khai dự án Sport DB
  • Sport Admin
    • Tài liệu triển khai dự án Sport Admin
  1. Sport API

Tài liệu triển khai dự án WSport API Game

Tài Liệu Triển Khai wsport-api-game — Laravel trên Docker#

   
Triển Khai Laravel API Game Service trên Docker với AWS
  

🔎 Tổng Quan#

Dự án wsport-api-game là dịch vụ API Laravel cho tính năng game, chạy với kiến trúc Docker 3 service: PHP-FPM, Nginx Web, và CLI (scheduler/queue worker).

Hạ Tầng Chính#

Thành phầnDịch vụ AWSMục đích
Container ImagesAWS ECRRegistry Docker image riêng tư

Chi Tiết Dự Án#

MụcGiá trị
ECR Repositorysports/wsport-api-game-prod
Source Branchproduction
Servicesfpm + web + cli
Volumeswsport_api_game_storage-data, wsport_api_game_bootstrap-data

🏗 Tổng Quan Kiến Trúc#

Cấu Trúc Thư Mục#

wsport-api-game/
├── build/
│   ├── Dockerfile-base.production          # Base image cho FPM/CLI
│   ├── Dockerfile.production               # Build multi-stage (FPM + Web + CLI)
│   ├── data/php/                           # Cấu hình PHP (php.ini, php-fpm.conf)
│   └── source/                             # Git submodule → source code
├── .env.production                         # Biến môi trường production
├── docker-compose.yml.production           # Docker Compose cho production
└── docs/                                   # Tài liệu

Kiến Trúc Runtime Production#

┌─────────────────────────────────────────────────────────────────────────┐
│                     MÔI TRƯỜNG PRODUCTION AWS                           │
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐    │
│  │                      Docker Host                                │    │
│  │                                                                 │    │
│  │  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐           │    │
│  │  │  FPM Service │  │  Web Service │  │  CLI Service │           │    │
│  │  │              │  │              │  │              │           │    │
│  │  │  • PHP-FPM   │  │  • Nginx     │  │  • Scheduler │           │    │
│  │  │  • Laravel   │◄─┤  • Static    │  │  • Queue     │           │    │
│  │  │  • .env (RO) │  │  • Proxy→FPM │  │  • .env (RO) │           │    │
│  │  │  • Port 9000 │  │  • Port 80   │  │              │           │    │
│  │  └──────┬───────┘  └──────────────┘  └──────┬───────┘           │    │
│  │         │                                   │                   │    │
│  │         ▼                                   ▼                   │    │
│  │    ┌──────────┐                        ┌──────────┐             │    │
│  │    │ storage  │                        │ storage  │             │    │
│  │    │bootstrap │  (shared volumes)      │bootstrap │             │    │
│  │    └──────────┘                        └──────────┘             │    │
│  └─────────────────────────────────────────────────────────────────┘    │
│                                                                         │
│  Networks: prod-network, backend-network                                │
└─────────────────────────────────────────────────────────────────────────┘

📦 Yêu Cầu Tiên Quyết#

Công cụPhiên bản tối thiểuMục đích
Docker≥ 24.0.0Build và chạy container
Docker Compose≥ 2.20.0Điều phối nhiều container
AWS CLI≥ 2.0Xác thực và push lên AWS ECR
Git≥ 2.30Quản lý source code & submodules

⚙ Cấu Hình#

Bước 1: Clone Repository và Khởi Tạo Submodule#

Bước 2: Tạo Docker Volumes#

Bước 3: Cấu Hình Biến Môi Trường#


🏭 Build & Đẩy Image Lên AWS ECR#

Bước 1: Đăng Nhập AWS ECR#

Bước 2: Build & Push Tất Cả Service Images#


🚀 Triển Khai Lên Production#

Bước 1: Triển Khai#

Bước 2: Thiết Lập Laravel Sau Triển Khai#

Bước 3: Kiểm Tra Trạng Thái#


📋 Tham Khảo Cấu Hình Runtime#

Container Services#

ServiceImage TagPortMục đích
fpm:fpm-latest9000PHP-FPM xử lý request Laravel
web:web-latest80Nginx phục vụ static files & proxy→FPM
cli:cli-latest—Laravel scheduler & queue worker

Volume Mounts#

VolumeĐường dẫn ContainerChế độServices
wsport_api_game_storage-data/opt/apps/laravel/storageRWfpm, web, cli
wsport_api_game_bootstrap-data/opt/apps/laravel/bootstrapRWfpm, web, cli
build/source/.env/opt/apps/laravel/.envROfpm, cli

Biến Môi Trường#

BiếnServiceMặc địnhMục đích
SP_ENABLE_QUEUEclifalseBật/tắt queue worker
SP_ENABLE_SCHEDULEclifalseBật/tắt task scheduler
FPM_HOSTweb*.fpm:9000FPM upstream cho Nginx proxy
Modified at 2026-03-23 04:37:37
Previous
Tài liệu triển khai dự án WSport API
Next
Tài liệu triển khai dự án Sport DB
Built with