Tài Liệu Triển Khai Dự Án Traffic — Docker#
Triển Khai Dự Án Traffic Production với Docker
🔥 Tổng Quan#
Tài liệu này mô tả quy trình xây dựng và triển khai dự án Traffic chạy trên Docker trong môi trường production. Dự án Traffic bao gồm ba dịch vụ chính:| Dịch Vụ | Công Nghệ | Runtime | Mục Đích |
|---|
| Admin | Vue.js (Vite + TypeScript) | Nginx (static) | Dashboard quản trị traffic |
| API | Golang | Go binary + Supervisor | API backend xử lý traffic |
| Tool-v2 | Bun (TypeScript) | Bun + Supervisor + Chrome | Công cụ tự động giả lập traffic |
🏢 Dịch Vụ Admin#
Tech Stack#
Framework: Vue.js với Vite + TypeScript
Xây dựng: npm install → npm run build:prod
Runtime: Nginx Alpine (phục vụ file tĩnh)
Source: Git submodule tại admin/build/admin/
Cấu Trúc Dự Án#
Traffic/admin/
├─ build/
│ ├─ Dockerfile.production # Production: Vue.js build → Nginx
│ ├─ admin/ # ⚡ Git submodule — Vue.js source
│ └─ conf/nginx/
│ ├─ common/nginx.conf
│ └─ default.conf
├─ .env.production
└─ docker-compose.yml.production
Xây dựng & Đẩy Image#
Triển Khai#
🔌 Dịch Vụ API#
Tech Stack#
Xây dựng: go mod download → go build -o tf-api cmd/main.go
Runtime: Go binary + Supervisor
Source: Git submodule tại api/build/api/
Cấu Trúc Dự Án#
Traffic/api/
├─ build/
│ ├─ Dockerfile-base # Base image: Supervisor
│ ├─ Dockerfile # Production: Go build → binary
│ ├─ api/ # ⚡ Git submodule — Go source
│ │ ├─ go.mod / go.sum
│ │ ├─ cmd/main.go
│ │ └─ ...
│ └─ conf/supervisor/traffic-api.conf
├─ database/
└─ docker-compose.yml.production
Xây dựng Pipeline#
┌─────────────────────────────────────────────────────────────┐
│ PIPELINE BUILD GO │
│ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ GIAI ĐOẠN 1 │ │ GIAI ĐOẠN 2 │ │
│ │ build │───────────▶│ production │ │
│ │ │ │ │ │
│ │ • go mod │ │ • Base │ │
│ │ download │ │ image │ │
│ │ • go build │ │ • Supervisor│ │
│ │ • tf-api │ │ • tf-api │ │
│ │ binary │ │ binary │ │
│ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
Xây dựng & Đẩy Image#
Triển Khai#
Tech Stack#
Framework: Bun (TypeScript)
Xây dựng: bun install → bun compile
Runtime: Bun + Supervisor + Google Chrome Stable
Source: Git submodule tại tool-v2/build/tools/
Cấu Trúc Dự Án#
Traffic/tool-v2/
├─ build/
│ ├─ Dockerfile-base # Base image: Supervisor + Chrome
│ ├─ Dockerfile # Production image
│ ├─ tools/ # ⚡ Git submodule — Bun source
│ │ ├─ package.json / bun.lock
│ │ └─ src/
│ └─ conf/supervisor/traffic-tool.conf
├─ .env.production
└─ docker-compose.yml.production
Yêu Cầu Tiên Quyết#
| Công Cụ | Phiên Bản Tối Thiểu | Mục Đích |
|---|
| Docker | ≥ 24.0.0 | Quản lý container |
| Google Chrome Stable | ≥ 130.0.0 | Chrome headless cho tự động hoá |
Xây dựng & Đẩy Image#
Triển Khai#
🚀 Triển Khai Chung#
Tạo Docker Networks#
🛡️ Các Thực Hành Bảo Mật#
1.
.env không bao giờ nhúng vào image — mount dưới dạng read-only volume khi runtime
2.
Container non-root — tất cả dịch vụ chạy dưới user không đặc quyền (UID: 1200)
3.
Supervisor quản lý — các dịch vụ được Supervisor quản lý với auto-restart
📚 Tài Liệu Liên Quan#
Modified at 2026-03-25 08:04:25