3.7 KiB
3.7 KiB
Stock Monitor Docker部署指南
快速开始
1. 环境要求
- Docker 20.10+
- Docker Compose 1.29+
- 4GB+ 可用内存
- 10GB+ 可用磁盘空间
2. 配置环境变量
# 复制环境变量文件到项目根目录
cp ../.env.example ../.env
# 编辑.env文件,设置必要的配置参数
3. 快速部署
# 进入docker目录
cd docker
# 使用部署脚本
./deploy.sh
# 或者手动部署
docker-compose up -d
4. 访问应用
- 应用地址: http://localhost:8000
- API文档: http://localhost:8000/docs
部署模式
开发模式
cd docker
docker-compose up -d
包含服务:
- stock-monitor (主应用)
- redis (可选缓存)
- postgres (可选数据库)
生产模式
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数据
备份策略
# 备份数据库
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
监控和维护
查看日志
# 查看所有服务日志
docker-compose logs -f
# 查看特定服务日志
docker-compose logs -f stock-monitor
性能监控
# 查看容器资源使用
docker stats
# 查看容器状态
docker-compose ps
更新应用
# 拉取最新镜像
docker-compose pull
# 重新部署
docker-compose up -d
# 清理旧镜像
docker image prune -f
故障排查
常见问题
- 容器启动失败
# 查看详细日志
docker-compose logs [service-name]
# 检查配置文件
ls -la ../config.json ../.env
- 数据库连接失败
# 检查数据库状态
docker-compose exec postgres pg_isready -U stock_user
# 检查网络连接
docker-compose exec stock-monitor ping postgres
- 端口冲突
# 检查端口占用
netstat -tulpn | grep :8000
# 修改端口映射
# 编辑docker-compose.yml文件
健康检查
# 检查服务健康状态
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')"
安全建议
-
修改默认密码
- 修改数据库密码
- 修改Redis密码
- 修改应用密钥
-
配置SSL证书
- 将证书文件放置在
./ssl/目录 - 配置nginx.conf文件
- 将证书文件放置在
-
限制访问
- 配置防火墙规则
- 使用VPN访问
- 配置访问白名单
卸载
# 停止并删除所有容器
docker-compose down
# 删除数据卷(谨慎操作)
docker-compose down -v
# 删除镜像
docker image rm docker_stock-monitor