Tài Liệu Triển Khai Dự Án Marketing — Laravel trên Docker#
Triển Khai Dự Án Marketing Production với Docker
🔥 Tổng Quan#
Tài liệu này mô tả quy trình build và triển khai dự án Marketing chạy trên Docker trong môi trường production. Dự án Marketing bao gồm một dịch vụ:| Dịch Vụ | Công Nghệ | Runtime | Mục Đích |
|---|
| Tool | Laravel (PHP) | PHP-FPM + Nginx | Công cụ tự động hoá marketing |
Hạ Tầng Chính#
| Thành Phần | Dịch Vụ AWS | Mục Đích |
|---|
| Container Images | AWS ECR | Registry Docker image riêng tư |
| Cơ sở dữ liệu | AWS RDS | MySQL cho Laravel |
| Cache | ElastiCache | Redis cho session, queue, cache driver |
Tech Stack#
Xây dựng: Multi-stage — Composer install → npm install → npm build
Runtime: PHP-FPM + Nginx (nhiều container)
ECR: tools/marketing-tool-prod
Source: Git submodule tại tool/build/source/
Cấu Trúc Dự Án#
Marketing/tool/
├─ build/
│ ├─ Dockerfile-base.production # Base image: FPM + Nginx + CLI
│ ├─ Dockerfile-production # Production: multi-stage Laravel build
│ ├─ source/ # ⚡ Git submodule — Laravel source
│ │ ├─ composer.json / package.json
│ │ ├─ artisan
│ │ └─ ...
│ ├─ conf/
│ │ ├─ nginx/template/default.conf.template
│ │ └─ supervisor/marketing-tool.conf
│ └─ data/php/
│ ├─ php.ini
│ └─ php-fpm.conf
├─ database/
└─ docker-compose.yml.production
Xây dựng Pipeline#
┌──────────────────────────────────────────────────────────────────────────┐
│ MULTI-STAGE BUILD PIPELINE │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ GIAI ĐOẠN 1 │ │ GIAI ĐOẠN 2 │ │ GIAI ĐOẠN 3 │ │
│ │ vendor │───▶│ node_base │───▶│ build │ │
│ │ • composer │ │ • npm │ │ • npm run │ │
│ │ install │ │ install │ │ build │ │
│ └─────────────┘ └─────────────┘ └──────┬──────┘ │
│ ┌──────────────────────┬────┴───────────────┐ │
│ ▼ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ cli │ │ fpm_server │ │ web_server │ │
│ │ • Artisan │ │ • PHP-FPM │ │ • Nginx │ │
│ │ • Queues │ │ • Supervisor│ │ • Static │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└──────────────────────────────────────────────────────────────────────────┘
Cấu Hình Laravel (build/source/.env)#
Xây dựng & Triển Khai#
🛡️ Các Thực Hành Bảo Mật#
1.
.env không bao giờ nhúng vào image — mount read-only khi runtime
2.
Container non-root — chạy dưới user không đặc quyền (UID: 1200)
3.
Supervisor quản lý — PHP-FPM với auto-restart
📚 Tài Liệu Liên Quan#
Ngày cập nhật 2026-03-25 10:25:27