# CI/CD 部署配置指南

由于 Gitea Runner 运行在 Docker 容器中，无法直接访问宿主机文件系统和网络，我们采用以下方案：

## 📋 一次性配置步骤

### 1. 在服务器上手动克隆代码

SSH 登录服务器后执行：

```bash
# 进入项目目录
cd /www/dk_project/dk_app

# 克隆代码（使用服务器本地 Gitea 端口）
git clone http://127.0.0.1:10082/xiaoquan/rent.git

# 验证
cd rent
ls -la
```

### 2. 配置 Git 凭证（避免每次输入密码）

```bash
cd /www/dk_project/dk_app/rent

# 方法1：使用 Gitea Token
git config credential.helper store
git pull  # 第一次会要求输入用户名和 token

# 方法2：使用 SSH（推荐）
# 在 Gitea 中添加服务器的 SSH 公钥
ssh-keygen -t rsa -b 4096
cat ~/.ssh/id_rsa.pub
# 复制公钥，在 Gitea 个人设置 -> SSH密钥 中添加

# 修改 remote 为 SSH
git remote set-url origin git@127.0.0.1:xiaoquan/rent.git
```

### 3. 验证自动拉取

```bash
cd /www/dk_project/dk_app/rent
git pull origin test
```

应该能够无密码拉取成功。

---

## 🔄 CI/CD 工作流程

配置完成后，工作流程为：

1. **开发** → 修改代码
2. **git push origin test** → 推送到 Gitea
3. **CI/CD 自动触发** → 
   - SSH 到服务器
   - git pull 拉取最新代码
   - docker-compose build 构建
   - docker-compose up 部署

---

## 🚀 使用方式

### 推送到测试环境
```bash
git push origin test
```

### 推送到生产环境
```bash
git push origin prod
```

---

## 📝 注意事项

1. **首次配置**：必须在服务器上手动克隆一次代码
2. **Git 凭证**：配置后才能自动 git pull
3. **路径固定**：代码路径为 `/www/dk_project/dk_app/rent`
4. **权限**：确保 Docker 有权限访问代码目录

---

## 🔧 故障排查

### 问题：CI/CD 提示找不到代码目录

**解决**：检查服务器上是否已克隆代码
```bash
ls -la /www/dk_project/dk_app/rent
```

### 问题：git pull 需要密码

**解决**：配置 Git 凭证（见上面步骤2）

### 问题：Docker 构建失败

**解决**：检查 Dockerfile 和依赖
```bash
cd /www/dk_project/dk_app/rent/deploy/docker
docker-compose -f docker-compose.test.yml build
```

---

**维护者**：开发团队  
**最后更新**：2026-06-10
