197 lines
3.7 KiB
Markdown
197 lines
3.7 KiB
Markdown
# 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
|
||
``` |