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

3.7 KiB
Raw Blame History

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. 访问应用

部署模式

开发模式

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

故障排查

常见问题

  1. 容器启动失败
# 查看详细日志
docker-compose logs [service-name]

# 检查配置文件
ls -la ../config.json ../.env
  1. 数据库连接失败
# 检查数据库状态
docker-compose exec postgres pg_isready -U stock_user

# 检查网络连接
docker-compose exec stock-monitor ping postgres
  1. 端口冲突
# 检查端口占用
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')"

安全建议

  1. 修改默认密码

    • 修改数据库密码
    • 修改Redis密码
    • 修改应用密钥
  2. 配置SSL证书

    • 将证书文件放置在./ssl/目录
    • 配置nginx.conf文件
  3. 限制访问

    • 配置防火墙规则
    • 使用VPN访问
    • 配置访问白名单

卸载

# 停止并删除所有容器
docker-compose down

# 删除数据卷(谨慎操作)
docker-compose down -v

# 删除镜像
docker image rm docker_stock-monitor