2026-01-05 10:31:24 +08:00
|
|
|
# 部署文档
|
|
|
|
|
|
|
|
|
|
## 环境要求
|
|
|
|
|
|
|
|
|
|
- **操作系统**: 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 <容器名>
|
|
|
|
|
```
|