gitdataai/docker/README.md
2026-05-30 01:38:40 +08:00

137 lines
2.6 KiB
Markdown

# GitDataAI Docker 配置
## 文件说明
### Dockerfile 文件
| 文件名 | 服务 | 说明 |
|--------|------|------|
| `gitdata.Dockerfile` | GitData API | 主 API 服务 |
| `email.Dockerfile` | Email Service | 邮件发送服务 |
| `gitpod.Dockerfile` | GitPod Service | Git 服务 |
| `gitsync.Dockerfile` | GitSync Service | Git 同步服务 |
| `migrate.Dockerfile` | Database Migration | 数据库迁移工具 |
| `web.Dockerfile` | Web Frontend | React 前端应用 |
### 配置文件
| 文件名 | 说明 |
|--------|------|
| `docker-compose.yml` | 完整的开发环境配置 |
| `nginx.conf` | Nginx 反向代理配置 |
## 快速开始
### 1. 启动完整开发环境
```bash
# 进入 docker 目录
cd docker
# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
```
### 2. 单独构建服务
```bash
# 构建 GitData API
docker build -f docker/gitdata.Dockerfile -t gitdata-api .
# 构建前端
docker build -f docker/web.Dockerfile -t gitdata-web .
```
### 3. 环境变量配置
创建 `.env` 文件配置环境变量:
```bash
# 数据库配置
POSTGRES_USER=gitdata
POSTGRES_PASSWORD=your_secure_password
POSTGRES_DB=app
# MinIO 配置
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=your_secure_password
```
## 服务端口
| 服务 | 端口 | 说明 |
|------|------|------|
| Web Frontend | 80 | 前端访问入口 |
| GitData API | 8080 | 主 API 服务 |
| Git HTTP | 5023 | Git HTTP 访问 |
| Git RPC | 5030 | Git RPC 服务 |
| SSH | 5022 | SSH Git 访问 |
| GitPod | 5082 | GitPod 服务 |
| GitSync | 5083 | GitSync 健康检查 |
| PostgreSQL | 5432 | 数据库 |
| Redis | 6379 | 缓存 |
| Qdrant | 6333 | 向量数据库 |
| NATS | 4222 | 消息队列 |
| MinIO | 9000/9001 | 对象存储 |
## 生产环境部署
### 1. 修改环境变量
```bash
# 复制示例配置
cp .env.example .env
# 编辑配置文件,修改密码等敏感信息
vim .env
```
### 2. 启动服务
```bash
# 使用生产配置启动
docker-compose -f docker-compose.yml up -d
# 查看服务状态
docker-compose ps
```
### 3. 数据备份
```bash
# 备份 PostgreSQL
docker exec gitdata-postgres pg_dump -U gitdata app > backup.sql
# 备份 MinIO 数据
docker cp gitdata-minio:/data ./minio-backup
```
## 常见问题
### 1. 服务启动失败
检查日志:
```bash
docker-compose logs <service-name>
```
### 2. 数据库连接失败
确保 PostgreSQL 健康检查通过:
```bash
docker-compose ps postgres
```
### 3. 端口冲突
修改 `docker-compose.yml` 中的端口映射:
```yaml
ports:
- "8081:8080" # 修改宿主机端口
```