108 lines
2.6 KiB
Markdown
108 lines
2.6 KiB
Markdown
# 构建脚本
|
|
|
|
## 一键构建脚本
|
|
|
|
### build.js - 构建镜像
|
|
|
|
```bash
|
|
# 构建所有镜像
|
|
node scripts/build.js
|
|
|
|
# 构建指定服务
|
|
node scripts/build.js app gitserver
|
|
|
|
# 指定 tag
|
|
TAG=v1.0.0 node scripts/build.js
|
|
|
|
# 指定架构
|
|
TARGET=aarch64-unknown-linux-gnu node scripts/build.js
|
|
```
|
|
|
|
**环境变量:**
|
|
|
|
| 变量 | 默认值 | 说明 |
|
|
|------------|------------------------------|-------------|
|
|
| `REGISTRY` | `harbor.gitdata.me/gta_team` | 镜像仓库 |
|
|
| `TAG` | `latest` | 镜像标签 |
|
|
| `TARGET` | `x86_64-unknown-linux-gnu` | Rust 交叉编译目标 |
|
|
|
|
---
|
|
|
|
### push.js - 推送镜像
|
|
|
|
```bash
|
|
# 推送所有镜像
|
|
HARBOR_USERNAME=user HARBOR_PASSWORD=pass node scripts/push.js
|
|
|
|
# 推送指定服务
|
|
HARBOR_USERNAME=user HARBOR_PASSWORD=pass TAG=sha-abc123 node scripts/push.js app
|
|
```
|
|
|
|
**环境变量:**
|
|
|
|
| 变量 | 默认值 | 说明 |
|
|
|-------------------|------------------------------|--------------|
|
|
| `REGISTRY` | `harbor.gitdata.me/gta_team` | 镜像仓库 |
|
|
| `TAG` | `latest` 或 Git SHA | 镜像标签 |
|
|
| `HARBOR_USERNAME` | - | **必填** 仓库用户名 |
|
|
| `HARBOR_PASSWORD` | - | **必填** 仓库密码 |
|
|
|
|
---
|
|
|
|
### deploy.js - 部署到 Kubernetes
|
|
|
|
```bash
|
|
# 部署最新镜像
|
|
node scripts/deploy.js
|
|
|
|
# 干跑模式(不实际部署)
|
|
node scripts/deploy.js --dry-run
|
|
|
|
# 部署并运行数据库迁移
|
|
node scripts/deploy.js --migrate
|
|
|
|
# 指定 tag
|
|
TAG=sha-abc123 node scripts/deploy.js
|
|
|
|
# 指定命名空间
|
|
NAMESPACE=staging node scripts/deploy.js
|
|
```
|
|
|
|
**环境变量:**
|
|
|
|
| 变量 | 默认值 | 说明 |
|
|
|--------------|------------------------------|-----------------|
|
|
| `REGISTRY` | `harbor.gitdata.me/gta_team` | 镜像仓库 |
|
|
| `TAG` | `latest` 或 Git SHA | 镜像标签 |
|
|
| `NAMESPACE` | `gitdata` | K8s 命名空间 |
|
|
| `RELEASE` | `gitdata` | Helm Release 名称 |
|
|
| `KUBECONFIG` | `~/.kube/config` | Kubeconfig 路径 |
|
|
|
|
---
|
|
|
|
## 完整 CI/CD 流程
|
|
|
|
```bash
|
|
# 1. 构建
|
|
node scripts/build.js
|
|
|
|
# 2. 推送
|
|
HARBOR_USERNAME=user HARBOR_PASSWORD=pass node scripts/push.js
|
|
|
|
# 3. 部署
|
|
node scripts/deploy.js --migrate
|
|
```
|
|
|
|
## 本地开发
|
|
|
|
```bash
|
|
# 本地构建测试
|
|
node scripts/build.js app
|
|
|
|
# 使用本地 tag
|
|
TAG=dev node scripts/build.js
|
|
|
|
# 部署到测试环境
|
|
NAMESPACE=test node scripts/deploy.js
|
|
```
|