Tài liệu triển khai dự án Landing-Page
Tài Liệu Triển Khai Dự Án Landing-Page — Docker#
Triển Khai Dự Án Landing-Page 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 Landing-Page chạy trên Docker trong môi trường production. Dự án Landing-Page bao gồm hai dự án con:Dự Án Con Builder#
| Dịch Vụ | Công Nghệ | Runtime | Mục Đích |
|---|
| Admin | Vue.js (Vite) | Nginx (static) | Dashboard quản trị tạo landing page |
| API | Laravel (PHP) | PHP-FPM + Nginx | API backend quản lý landing page |
Dự Án Con System#
| Dịch Vụ | Công Nghệ | Runtime | Mục Đích |
|---|
| Admin | WordPress (PHP) | PHP-FPM + Nginx | Hệ thống landing page WordPress |
| API | Laravel (PHP) | PHP-FPM + Nginx | API backend quản lý hệ thống |
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 và WordPress |
| Cache | ElastiCache | Redis cho session, queue, cache driver |
🏗️ Dự Án Builder#
Dịch Vụ Admin (Vue.js)#
Tech Stack#
Framework: Vue.js với Vite
Xây dựng: npm install → npm run build:prod
Runtime: Nginx Alpine (phục vụ file tĩnh)
ECR: tools/landing-page-builder-admin-prod
Cấu Trúc Dự Án#
Landing-Page/Builder/admin/
├─ build/
│ ├─ Dockerfile.production # Production: Vue.js build → Nginx
│ ├─ source/ # ⚡ Git submodule — Vue.js source
│ └─ conf/nginx/
├─ .env.production
└─ docker-compose.yml.production
Xây dựng & Triển Khai#
Dịch Vụ API (Laravel)#
Tech Stack#
Xây dựng: Multi-stage — Composer install → source copy
ECR: tools/landing-page-builder-api-prod
Cơ sở dữ liệu: AWS RDS (MySQL)
Cấu Trúc Dự Án#
Landing-Page/Builder/api/
├─ build/
│ ├─ Dockerfile-base.production
│ ├─ Dockerfile.production
│ ├─ source/ # ⚡ Git submodule — Laravel source
│ └─ conf/
│ ├─ nginx/template/default.conf.template
│ └─ supervisor/landing-page.conf
├─ database/
└─ docker-compose.yml.production
Cấu Hình Laravel#
Xây dựng & Triển Khai#
🖥️ Dự Án System#
Dịch Vụ Admin (WordPress)#
Tech Stack#
Nền tảng: WordPress (PHP)
Xây dựng: Copy source vào base PHP-FPM + Nginx
ECR: tools/landing-page-system-admin-prod
Cơ sở dữ liệu: AWS RDS (MySQL)
Cấu Trúc Dự Án#
Landing-Page/System/admin/
├─ build/
│ ├─ Dockerfile-base.production
│ ├─ Dockerfile.production
│ ├─ source/ # ⚡ Git submodule — WordPress source
│ │ ├─ wp-config.php
│ │ └─ wp-content/
│ └─ conf/nginx/template/default.conf.template
├─ database/
└─ docker-compose.yml.production
Lưu ý: WordPress source được mount d ưới dạng Docker volume tại /opt/apps/wordpress để cho phép lưu trữ file persistent.
Xây dựng & Triển Khai#
Dịch Vụ API (Laravel)#
Tech Stack#
Xây dựng: Multi-stage — Composer install → source copy
ECR: tools/landing-page-system-api-prod
Cấu Trúc Dự Án#
Landing-Page/System/api/
├─ build/
│ ├─ Dockerfile-base.production
│ ├─ Dockerfile.production
│ ├─ source/ # ⚡ Git submodule — Laravel source
│ └─ conf/
│ ├─ nginx/template/default.conf.template
│ └─ supervisor/
└─ docker-compose.yml.production
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
4.
WordPress volume — WordPress files mount dưới dạng volume persistent
📚 Tài Liệu Liên Quan#
Modified at 2026-03-23 04:36:59