feat: 替换 GitLab 为 Gitea + Act Runner
- 删除 .gitlab-ci.yml - 新增 .gitea/workflows/deploy.yml (Gitea Actions 工作流) - 新增 deploy/docker/docker-compose.gitea.yml (Gitea + Act Runner) - 更新 scripts/setup-server.sh 初始化脚本 - 更新 deploy/README.md 部署文档 - 更新 Makefile 新增 gitea-* 命令 - 更新 .env.example 新增 GITEA_RUNNER_TOKEN Gitea 内存占用约 100MB,适合 4GB 小内存服务器 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+40
-34
@@ -107,66 +107,72 @@ make test-deploy
|
||||
|
||||
---
|
||||
|
||||
## 二、GitLab CI/CD 自动化
|
||||
## 二、Gitea + Act Runner 自动化
|
||||
|
||||
> Gitea 内存占用约 100MB,适合 4GB 小内存服务器。
|
||||
|
||||
### 前提条件
|
||||
|
||||
- 服务器已运行初始化脚本
|
||||
- 代码已推送到 GitLab 仓库
|
||||
- 服务器已运行初始化脚本(Gitea 和 Act Runner 已自动启动)
|
||||
- Gitea 已完成初始配置
|
||||
|
||||
### 第 1 步:安装 GitLab Runner
|
||||
### 第 1 步:配置 Gitea
|
||||
|
||||
首次初始化已自动启动 Gitea,访问 `http://服务器IP:3002` 完成:
|
||||
|
||||
1. 设置管理员账号密码
|
||||
2. 创建仓库 `rent-platform`
|
||||
|
||||
### 第 2 步:注册 Act Runner
|
||||
|
||||
1. Gitea → **Settings → Actions → Runners → Create new Runner**
|
||||
2. 复制 Registration Token
|
||||
3. 编辑 `.env` 填入 token:
|
||||
|
||||
```bash
|
||||
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
|
||||
sudo apt install gitlab-runner
|
||||
vi deploy/docker/.env
|
||||
# 将 GITEA_RUNNER_TOKEN=change_me 改为真实 token
|
||||
```
|
||||
|
||||
### 第 2 步:注册 Runner
|
||||
|
||||
1. GitLab → **Settings → CI/CD → Runners** → 复制 token
|
||||
2. 在服务器执行:
|
||||
4. 重启 Runner:
|
||||
|
||||
```bash
|
||||
sudo gitlab-runner register
|
||||
docker compose -f deploy/docker/docker-compose.gitea.yml restart act-runner
|
||||
```
|
||||
|
||||
| 项目 | 值 |
|
||||
|------|------|
|
||||
| GitLab URL | `http://你的GitLab地址/` |
|
||||
| Token | 从页面复制 |
|
||||
| Description | `rent-deploy-runner` |
|
||||
| Tags | `rent-deploy` |
|
||||
| Executor | `shell` |
|
||||
|
||||
### 第 3 步:配置 Runner 权限
|
||||
5. 验证 Runner 状态:
|
||||
|
||||
```bash
|
||||
sudo usermod -aG docker gitlab-runner
|
||||
sudo -u gitlab-runner npm install -g pnpm
|
||||
docker logs rent-act-runner
|
||||
```
|
||||
|
||||
### 第 4 步:配置 CI/CD 变量
|
||||
在 Gitea → **Settings → Actions → Runners** 页面应能看到 `rent-deploy-runner` 已注册并在线。
|
||||
|
||||
GitLab → **Settings → CI/CD → Variables**:
|
||||
### 第 3 步:推送代码到 Gitea
|
||||
|
||||
| 变量名 | 说明 | Masked |
|
||||
|--------|------|--------|
|
||||
| `PROD_DB_PASSWORD` | 生产数据库密码 | ✅ |
|
||||
| `PROD_JWT_SECRET` | 生产 JWT 密钥 | ✅ |
|
||||
| `TEST_DB_PASSWORD` | 测试数据库密码 | ✅ |
|
||||
| `TEST_JWT_SECRET` | 测试 JWT 密钥 | ✅ |
|
||||
```bash
|
||||
# 添加 Gitea 远程仓库
|
||||
git remote add gitea http://服务器IP:3002/用户名/rent-platform.git
|
||||
|
||||
### 第 5 步:推送代码触发部署
|
||||
# 推送分支
|
||||
git push gitea master
|
||||
git push gitea test
|
||||
git push gitea prod
|
||||
```
|
||||
|
||||
### 第 4 步:自动部署触发
|
||||
|
||||
```bash
|
||||
# 推送 test 分支 → 自动部署测试环境
|
||||
git push origin test
|
||||
git push gitea test
|
||||
|
||||
# 推送 prod 分支 → 自动部署生产环境
|
||||
git push origin prod
|
||||
git push gitea prod
|
||||
```
|
||||
|
||||
流水线:install → build(并行构建 4 个应用)→ deploy
|
||||
流水线:install → build → deploy
|
||||
|
||||
在 Gitea → **仓库 → Actions** 页面查看实时日志。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -5,3 +5,6 @@ PROD_JWT_SECRET=change_me_in_production
|
||||
# ===== 测试环境 =====
|
||||
TEST_DB_PASSWORD=change_me_in_test
|
||||
TEST_JWT_SECRET=change_me_in_test
|
||||
|
||||
# ===== Gitea Act Runner =====
|
||||
GITEA_RUNNER_TOKEN=change_me
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
gitea:
|
||||
image: gitea/gitea:latest
|
||||
container_name: rent-gitea
|
||||
restart: always
|
||||
environment:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
- GITEA__server__ROOT_URL=http://localhost:3002/
|
||||
- GITEA__server__HTTP_PORT=3000
|
||||
- GITEA__server__SSH_PORT=2222
|
||||
- GITEA__server__SSH_LISTEN_PORT=2222
|
||||
ports:
|
||||
- "3002:3000"
|
||||
- "2222:2222"
|
||||
volumes:
|
||||
- gitea_data:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
networks:
|
||||
- gitea
|
||||
|
||||
act-runner:
|
||||
image: gitea/act_runner:latest
|
||||
container_name: rent-act-runner
|
||||
restart: always
|
||||
depends_on:
|
||||
- gitea
|
||||
environment:
|
||||
- GITEA_INSTANCE_URL=http://gitea:3000
|
||||
# 注册后在 Gitea Web 界面获取 token,填入下面配置
|
||||
- GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_TOKEN:-change_me}
|
||||
- GITEA_RUNNER_NAME=rent-deploy-runner
|
||||
- GITEA_RUNNER_LABELS=rent-deploy:docker://node:18-alpine
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- act_runner_data:/data
|
||||
networks:
|
||||
- gitea
|
||||
|
||||
volumes:
|
||||
gitea_data:
|
||||
act_runner_data:
|
||||
|
||||
networks:
|
||||
gitea:
|
||||
name: gitea
|
||||
Reference in New Issue
Block a user