# 部署文档

## 环境要求

- **操作系统**: Linux (CentOS 7+)
- **Docker**: 20.10+
- **Docker Compose**: 1.29+
- **内存**: 建议 4GB+
- **磁盘**: 建议 50GB+

## 部署步骤

### 1. 安装 Docker 和 Docker Compose

```bash
# 安装 Docker
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker

# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
```

### 2. 克隆或创建项目目录

```bash
mkdir -p /home/renjianbo/devops
cd /home/renjianbo/devops
```

### 3. 启动各个服务

#### Gerrit

```bash
cd gerrit
docker-compose up -d
```

#### Gitea

```bash
cd gitea
docker-compose up -d
```

#### MinIO

```bash
cd minio
docker-compose up -d
```

#### Nexus

```bash
cd nexus
docker-compose up -d
```

#### Drone CI

```bash
cd drone-ci
docker-compose up -d
```

#### MkDocs

```bash
cd mkdocs
docker-compose up -d
```

### 4. 验证部署

```bash
# 检查所有容器状态
docker ps

# 检查端口监听
netstat -tlnp | grep -E "8000|8082|3000|9000|8081"
```

## 配置说明

### 端口映射

- **Gerrit**: 8082 (HTTP), 29418 (SSH)
- **Gitea**: 3000 (HTTP), 222 (SSH)
- **MinIO**: 9000 (API), 9001 (Console)
- **Nexus**: 8081 (HTTP)
- **Drone CI**: 3000 (HTTP)
- **MkDocs**: 8000 (HTTP)

### 数据持久化

所有服务的数据存储在 Docker 卷中，确保数据持久化。

## 备份和恢复

### 备份

```bash
# 备份所有数据
cd /home/renjianbo/devops
./scripts/backup.sh
```

### 恢复

```bash
# 恢复数据
cd /home/renjianbo/devops
./scripts/restore.sh
```

## 监控和维护

### 查看日志

```bash
# 查看特定服务日志
cd /home/renjianbo/devops/<服务名>
docker-compose logs -f
```

### 更新服务

```bash
# 拉取最新镜像
docker-compose pull

# 重启服务
docker-compose up -d
```

## 故障排查

### 端口冲突

如果端口被占用，修改 `docker-compose.yml` 中的端口映射。

### 权限问题

确保数据目录有正确的权限：

```bash
sudo chown -R $USER:$USER /home/renjianbo/devops/*/data
```

### 容器无法启动

查看容器日志：

```bash
docker logs <容器名>
```
