| Thành phần | Dịch vụ AWS | Mục đích |
|---|---|---|
| Container Images | AWS ECR | Registry Docker image riêng tư |
| Process Manager | Supervisor | Quản lý tiến trình Go binary trong container |
| Mục | Giá trị |
|---|---|
| ECR Repository | sports/ksport-api-prod |
| Base Image ECR | sports/ksport-api-base-prod:latest |
| Source Branch | ksport-golang-develop |
| Submodule Path | build/source-ksport-golang |
| Port | 50001 |
ksport-api/
├── build/
│ ├── Dockerfile-ksport-golang.production # Build multi-stage (Go → base image)
│ ├── conf/ # Cấu hình Supervisor
│ └── source-ksport-golang/ # Git submodule → source code
├── .env-ksport-golang.production # Biến môi trường production
├── docker-compose.yml-ksport-golang.production # Docker Compose cho production
└── docs/ # Tài liệu┌──────────────────────────────────────────────────────────────────────────┐
│ PIPELINE BUILD MULTI-STAGE — KSPORT-API │
│ │
│ ┌────────────────────┐ │
│ │ builder │ │
│ │ │ │
│ │ • golang:latest │ │
│ │ • go mod download │ │
│ │ • go build │ │
│ │ → ksport-api │ │
│ └────────┬───────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────┐ │
│ │ production │ │
│ │ (BASE_IMAGE) │ │
│ │ │ │
│ │ • Supervisor │ │
│ │ • ksport-api bin │ │
│ │ • Non-root user │ │
│ └────────┬───────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────┐ │
│ │ ECR Push │ │
│ │ :latest │ │
│ └────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────┘| Công cụ | Phiên bản tối thiểu | Mục đích |
|---|---|---|
| Docker | ≥ 24.0.0 | Build và chạy container |
| Docker Compose | ≥ 2.20.0 | Điều phối nhiều container |
| AWS CLI | ≥ 2.0 | Xác thực và push lên AWS ECR |
| Git | ≥ 2.30 | Quản lý source code & submodules |
| Đường dẫn mount (Container) | Nguồn | Chế độ | Mục đích |
|---|---|---|---|
/app/.env | build/source-ksport-golang/.env | RO | Biến môi trường ứng dụng |
| Network | Mục đích |
|---|---|
prod-network | Giao tiếp services production |
backend-network | Giao tiếp services backend |