# 期货智析平台 - Docker 部署指南

## 📋 部署前准备

### 1. 环境要求
- Docker Desktop for Windows（已安装并运行）
- Windows 10/11 专业版或家庭版（WSL2后端）
- 至少 2GB 可用内存
- 至少 5GB 磁盘空间

### 2. 检查Docker状态
```powershell
docker --version
docker-compose --version
```

## 🚀 快速部署

### 方法一：使用部署脚本（推荐）
1. 双击运行 `deploy.bat`
2. 等待自动完成构建和部署
3. 访问 http://localhost:9600

### 方法二：手动部署
```powershell
# 进入项目目录
cd e:\docker_workspace\cobot2.0_WorkHorse\app\working\workspaces\default\share_data\project\market_data_colector_platform\buffer_platform

# 停止旧容器
docker-compose down

# 构建镜像
docker-compose build --no-cache

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

## 🌐 访问地址

部署成功后，可访问以下地址：

| 服务 | 地址 |
|------|------|
| 主页 | http://localhost:9600 |
| 品种分析 | http://localhost:9600/futures-analysis |
| AI配置 | http://localhost:9600/ai-config |
| API文档 | http://localhost:9600/docs |
| 健康检查 | http://localhost:9600/api/v1/health |

## 🛠️ 日常管理

### 使用管理脚本
双击运行 `manage.bat`，可选择：
1. 启动服务
2. 停止服务
3. 重启服务
4. 查看日志
5. 查看状态
6. 进入容器
7. 清理资源

### 常用Docker命令

```powershell
# 查看容器状态
docker-compose ps

# 查看实时日志
docker-compose logs -f

# 查看最近100行日志
docker-compose logs --tail=100

# 重启服务
docker-compose restart

# 停止服务
docker-compose stop

# 启动服务
docker-compose start

# 停止并删除容器（保留数据）
docker-compose down

# 完全清理（包括数据卷）
docker-compose down -v

# 进入容器bash
docker exec -it futures-buffer-platform /bin/bash

# 查看容器资源使用
docker stats futures-buffer-platform
```

## 📁 目录结构

```
buffer_platform/
├── data/              # SQLite数据库（自动创建）
├── logs/              # 日志文件（自动创建）
├── app/
│   └── static/        # 前端静态文件
├── docker-compose.yml # Docker编排配置
├── Dockerfile         # Docker镜像构建文件
├── deploy.bat         # 一键部署脚本
└── manage.bat         # 管理脚本
```

## 🔧 配置说明

### 环境变量

在 `docker-compose.yml` 中可配置：

| 变量 | 说明 | 默认值 |
|------|------|--------|
| BUFFER_DB_PATH | 数据库路径 | /app/data/buffer.db |
| BUFFER_HOST | 服务监听地址 | 0.0.0.0 |
| BUFFER_PORT | 服务端口 | 8600 |
| CACHE_TTL | 缓存过期时间（秒） | 300 |
| BUFFER_LOG_LEVEL | 日志级别 | INFO |
| MAX_WORKERS | 并发采集数 | 2 |
| TZ | 时区 | Asia/Shanghai |

### 端口映射

- 宿主机端口：9600
- 容器端口：8600

如需修改端口，编辑 `docker-compose.yml` 中的 `ports` 配置：
```yaml
ports:
  - "你想要的端口:8600"
```

## 🔍 故障排查

### 1. 容器无法启动
```powershell
# 查看详细日志
docker-compose logs

# 检查端口占用
netstat -ano | findstr "9600"
```

### 2. 数据库问题
```powershell
# 进入容器检查数据库
docker exec -it futures-buffer-platform ls -la /app/data
```

### 3. 重新构建镜像
```powershell
# 清理旧镜像
docker-compose down
docker system prune -a

# 重新构建
docker-compose build --no-cache
docker-compose up -d
```

### 4. 查看健康状态
```powershell
# 查看容器健康检查状态
docker inspect --format='{{.State.Health.Status}}' futures-buffer-platform
```

## 🔄 更新部署

当代码有更新时：

```powershell
# 方法一：使用部署脚本
deploy.bat

# 方法二：手动更新
docker-compose down
docker-compose build --no-cache
docker-compose up -d
```

## 📊 监控和日志

### 实时日志
```powershell
docker-compose logs -f buffer-platform
```

### 容器资源监控
```powershell
docker stats futures-buffer-platform
```

### 日志位置
- 容器内：/app/logs/
- 宿主机：./logs/

## 🗄️ 数据备份

### 备份数据库
```powershell
docker cp futures-buffer-platform:/app/data/buffer.db ./backup_buffer.db
```

### 恢复数据库
```powershell
docker cp ./backup_buffer.db futures-buffer-platform:/app/data/buffer.db
docker-compose restart
```

## 🎯 生产环境建议

1. **修改默认端口**：避免端口冲突
2. **配置日志轮转**：在docker-compose.yml中添加：
   ```yaml
   logging:
     driver: "json-file"
     options:
       max-size: "10m"
       max-file: "3"
   ```
3. **数据卷备份**：定期备份data目录
4. **监控资源**：使用docker stats监控资源使用
5. **设置重启策略**：已配置为 `unless-stopped`

## 📞 技术支持

如遇问题，请检查：
1. Docker Desktop是否正常运行
2. 端口9600是否被占用
3. 查看容器日志：`docker-compose logs`
4. 检查健康状态：`docker-compose ps`
