Files
sanguo_vnpy_v2/docs/deployment/docker-deployment.md
claude_dev 918bbed0fc fix: 修复登录500错误和移除明文密码提示
- 修复 deps.py 中 get_vn_service 的引用错误 (vn_service.vn_service -> vn_service)
- 移除登录页面上的明文密码提示
- 改进前端错误处理,避免数据加载失败导致登录显示错误
2026-07-02 12:23:55 +08:00

410 lines
6.1 KiB
Markdown

# Docker 部署指南
本指南介绍如何使用 Docker Compose 部署 Sanguo VeighNa 量化交易平台。
## 目录
- [前置要求](#前置要求)
- [快速开始](#快速开始)
- [配置说明](#配置说明)
- [启动服务](#启动服务)
- [访问界面](#访问界面)
- [数据管理](#数据管理)
- [生产部署](#生产部署)
- [常见问题](#常见问题)
---
## 前置要求
### 系统要求
- **操作系统**: Linux, macOS, Windows (with WSL2)
- **Docker**: 20.10+
- **Docker Compose**: 2.0+
- **内存**: 至少 2GB 可用内存
- **存储**: 至少 10GB 可用存储空间
### 安装 Docker
#### Linux
```bash
# Ubuntu/Debian
curl -fsSL https://get.docker.com | bash
sudo usermod -aG docker $USER
# 启用 Docker Compose
sudo apt-get install docker-compose-plugin
```
#### macOS
下载并安装 [Docker Desktop for Mac](https://www.docker.com/products/docker-desktop/)
#### Windows
下载并安装 [Docker Desktop for Windows](https://www.docker.com/products/docker-desktop/)
---
## 快速开始
### 1. 克隆项目
```bash
git clone https://github.com/sanguo/sanguo_vnpy_v2.git
cd sanguo_vnpy_v2
```
### 2. 配置环境变量
```bash
cd docker
cp .env.example .env
vi .env # 编辑配置
```
### 3. 启动服务
```bash
docker-compose up -d
```
### 4. 查看状态
```bash
docker-compose ps
docker-compose logs -f
```
---
## 配置说明
### 环境变量
编辑 `.env` 文件配置以下参数:
```env
# 数据目录
DATA_DIR=./data
# 端口配置
HTTP_PORT=8000
WS_PORT=8080
# 时区
TZ=Asia/Shanghai
# 日志级别
VNPY_LOG_LEVEL=INFO
# 数据库配置
DB_TYPE=sqlite
DB_PATH=/app/data/vnpy.db
# Web 服务配置
WEB_HOST=0.0.0.0
WEB_PORT=8000
WEB_WORKERS=2
# 安全配置
JWT_SECRET_KEY=your-secret-key-here
SESSION_TIMEOUT=3600
```
### 目录映射
默认目录映射:
| 容器路径 | 宿主机路径 | 说明 |
|----------|------------|------|
| /app/data | `{DATA_DIR}/data` | 数据库和数据文件 |
| /app/logs | `{DATA_DIR}/logs` | 运行日志 |
| /app/config | `{DATA_DIR}/config` | 配置文件 |
| /app/temp | `{DATA_DIR}/temp` | 临时文件 |
---
## 启动服务
### 基本命令
```bash
# 启动所有服务
docker-compose up -d
# 仅启动核心服务
docker-compose up -d vnpy redis
# 启动并包含 Nginx
docker-compose --profile nginx up -d
# 启动并包含 PostgreSQL
docker-compose --profile postgres up -d
```
### 查看状态
```bash
# 查看容器状态
docker-compose ps
# 查看日志
docker-compose logs -f vnpy
# 查看所有服务日志
docker-compose logs -f
```
### 停止服务
```bash
# 停止服务
docker-compose down
# 停止并删除数据卷
docker-compose down -v
```
### 重启服务
```bash
# 重启所有服务
docker-compose restart
# 重启特定服务
docker-compose restart vnpy
```
### 进入容器
```bash
# 进入 VeighNa 容器
docker-compose exec vnpy bash
# 进入 Redis 容器
docker-compose exec redis sh
```
---
## 访问界面
### Web 界面
启动成功后,访问:
```
http://localhost:8000
```
### 默认登录
- **用户名**: `admin`
- **密码**: `admin123`
### WebSocket 端点
```
ws://localhost:8080
```
---
## 数据管理
### 数据备份
```bash
# 备份数据目录
tar czf vnpy_backup_$(date +%Y%m%d).tar.gz ./data
# 恢复数据
tar xzf vnpy_backup_YYYYMMDD.tar.gz
```
### 数据库操作
#### SQLite
```bash
# 进入容器
docker-compose exec vnpy bash
# 访问数据库
sqlite3 /app/data/vnpy.db
# 常用命令
.tables # 列出所有表
.schema # 查看表结构
.quit # 退出
```
#### PostgreSQL
```bash
# 进入 PostgreSQL 容器
docker-compose exec postgres psql -U vnpy -d vnpy
# 常用命令
\l # 列出所有数据库
\dt # 列出所有表
\q # 退出
```
---
## 生产部署
### 使用 Nginx 反向代理
```bash
# 启用 Nginx
docker-compose --profile nginx up -d
```
### 配置 HTTPS
1. 获取 SSL 证书
```bash
# 使用 Let's Encrypt
mkdir -p data/nginx/ssl
# 将证书文件复制到该目录
cp cert.pem data/nginx/ssl/
cp key.pem data/nginx/ssl/
```
2. 更新 nginx 配置
3. 重启服务
```bash
docker-compose restart nginx
```
### 资源限制
`.env` 文件中配置:
```env
VNPY_CPU_LIMIT=2.0
VNPY_MEMORY_LIMIT=2G
WEB_WORKERS=4
```
### 安全建议
1. **修改默认密码**
2. **使用强 JWT 密钥**
3. **启用 HTTPS**
4. **配置防火墙**
5. **定期备份**
6. **监控日志**
---
## 常见问题
### 端口冲突
如果端口被占用,修改 `.env` 中的端口配置:
```env
HTTP_PORT=8001
WS_PORT=8081
```
### 权限问题
```bash
# 修复数据目录权限
sudo chown -R $USER:$USER ./data
sudo chmod -R 755 ./data
```
### 容器无法启动
```bash
# 查看详细日志
docker-compose logs vnpy
# 重新构建
docker-compose up -d --build
```
### 数据丢失
确保使用绑定挂载而非命名卷:
```yaml
volumes:
- ./data:/app/data
```
---
## 高级配置
### 使用 PostgreSQL
```bash
# 启用 PostgreSQL
export USE_POSTGRES=1
docker-compose --profile postgres up -d
```
### 自定义配置
```bash
# 挂载自定义配置
mkdir -p config
cp your_config.yaml config/
```
### 多实例部署
```bash
# 修改端口和数据目录
docker-compose -f docker-compose.yml -p vnpy2 up -d
```
---
## 附录
### Docker Compose 命令参考
| 命令 | 说明 |
|------|------|
| `up -d` | 后台启动服务 |
| `down` | 停止并删除容器 |
| `ps` | 查看服务状态 |
| `logs` | 查看日志 |
| `exec` | 在容器中执行命令 |
| `restart` | 重启服务 |
| `build` | 重新构建镜像 |
### 目录结构
```
sanguo_vnpy_v2/
├── docker/
│ ├── .env # 环境变量配置
│ ├── .env.example # 配置示例
│ ├── docker-compose.yml # 编排配置
│ ├── Dockerfile # 镜像构建
│ ├── entrypoint.sh # 启动脚本
│ └── nginx/ # Nginx 配置
├── data/ # 数据目录
├── logs/ # 日志目录
└── docs/ # 文档
```
---
**最后更新**: 2026-07-01
**文档版本**: 1.0.0