stock-monitor/docker/DEPLOYMENT.md
2025-11-17 10:21:33 +08:00

197 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Stock Monitor Docker部署指南
## 快速开始
### 1. 环境要求
- Docker 20.10+
- Docker Compose 1.29+
- 4GB+ 可用内存
- 10GB+ 可用磁盘空间
### 2. 配置环境变量
```bash
# 复制环境变量文件到项目根目录
cp ../.env.example ../.env
# 编辑.env文件设置必要的配置参数
```
### 3. 快速部署
```bash
# 进入docker目录
cd docker
# 使用部署脚本
./deploy.sh
# 或者手动部署
docker-compose up -d
```
### 4. 访问应用
- 应用地址: http://localhost:8000
- API文档: http://localhost:8000/docs
## 部署模式
### 开发模式
```bash
cd docker
docker-compose up -d
```
包含服务:
- stock-monitor (主应用)
- redis (可选缓存)
- postgres (可选数据库)
### 生产模式
```bash
cd docker
docker-compose -f docker-compose.prod.yml up -d
```
包含服务:
- stock-monitor (主应用)
- redis (缓存)
- postgres (数据库)
- nginx (反向代理)
## 配置说明
### 环境变量
| 变量名 | 说明 | 默认值 |
|--------|------|--------|
| TUSHARE_TOKEN | Tushare API令牌 | 必填 |
| DB_HOST | 数据库主机 | postgres |
| DB_PORT | 数据库端口 | 5432 |
| DB_NAME | 数据库名称 | stock_monitor |
| DB_USER | 数据库用户 | stock_user |
| DB_PASSWORD | 数据库密码 | stock_password |
| REDIS_HOST | Redis主机 | redis |
| REDIS_PORT | Redis端口 | 6379 |
### 端口映射
| 服务 | 容器端口 | 主机端口 |
|------|----------|----------|
| stock-monitor | 8000 | 8000 |
| redis | 6379 | 6379 |
| postgres | 5432 | 5432 |
| nginx | 80/443 | 80/443 |
## 数据持久化
### 卷映射
- `../logs:/app/logs` - 应用日志
- `../data:/app/data` - 数据文件
- `../config.json:/app/config.json` - 配置文件
- `postgres_data:/var/lib/postgresql/data` - 数据库数据
- `redis_data:/data` - Redis数据
### 备份策略
```bash
# 备份数据库
docker exec stock-postgres pg_dump -U stock_user stock_monitor > backup.sql
# 备份Redis
docker exec stock-redis redis-cli save
docker cp stock-redis:/data/dump.rdb ./redis_backup.rdb
```
## 监控和维护
### 查看日志
```bash
# 查看所有服务日志
docker-compose logs -f
# 查看特定服务日志
docker-compose logs -f stock-monitor
```
### 性能监控
```bash
# 查看容器资源使用
docker stats
# 查看容器状态
docker-compose ps
```
### 更新应用
```bash
# 拉取最新镜像
docker-compose pull
# 重新部署
docker-compose up -d
# 清理旧镜像
docker image prune -f
```
## 故障排查
### 常见问题
1. **容器启动失败**
```bash
# 查看详细日志
docker-compose logs [service-name]
# 检查配置文件
ls -la ../config.json ../.env
```
2. **数据库连接失败**
```bash
# 检查数据库状态
docker-compose exec postgres pg_isready -U stock_user
# 检查网络连接
docker-compose exec stock-monitor ping postgres
```
3. **端口冲突**
```bash
# 检查端口占用
netstat -tulpn | grep :8000
# 修改端口映射
# 编辑docker-compose.yml文件
```
### 健康检查
```bash
# 检查服务健康状态
curl http://localhost:8000/health
# 检查数据库连接
docker-compose exec stock-monitor python -c "import psycopg2; psycopg2.connect(host='postgres', user='stock_user', password='stock_password', database='stock_monitor')"
```
## 安全建议
1. **修改默认密码**
- 修改数据库密码
- 修改Redis密码
- 修改应用密钥
2. **配置SSL证书**
- 将证书文件放置在`./ssl/`目录
- 配置nginx.conf文件
3. **限制访问**
- 配置防火墙规则
- 使用VPN访问
- 配置访问白名单
## 卸载
```bash
# 停止并删除所有容器
docker-compose down
# 删除数据卷(谨慎操作)
docker-compose down -v
# 删除镜像
docker image rm docker_stock-monitor
```