You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

A股智投分析平台 - Docker 完整指南

📦 包含的内容

1. 启动脚本3套环境

脚本 用途 命令
dev-start.sh/bat 开发模式(热重载) ./dev-start.sh
docker-start.sh/bat 生产模式 ./docker-start.sh
verify-docker.js 部署验证 node verify-docker.js

2. Docker 配置2套

配置 用途 特点
docker-compose.dev.yml 开发环境 Volume挂载热重载
docker-compose.yml 生产环境 完整构建,性能优化

3. 初始化脚本

脚本 用途
init-scripts/01-init-database.sql 创建分区表结构
init-scripts/02-seed-data.sql 插入种子数据
init-scripts/03-partition-maintenance.sql 分区维护工具

4. 文档

文档 内容
DOCKER_README.md 完整部署文档
DOCKER_SYNC.md 代码同步指南
DOCKER_QUICKREF.md 快速参考卡片
DOCKER_FILES.md 文件清单

🚀 快速开始

开发环境(推荐日常开发)

cd app/backend
./dev-start.sh          # Linux/Mac
# 或
-dev-start.bat         # Windows

特点:

  • 代码修改自动同步
  • 热重载,秒级生效
  • 无需重建镜像

生产环境(部署测试)

cd app/backend
./docker-start.sh       # Linux/Mac
# 或
docker-start.bat      # Windows

特点:

  • 完整构建,干净环境
  • 性能优化
  • 适合生产部署

📋 代码更改后的同步方式

方案对比

方案 启动命令 同步速度 适用场景
开发模式 dev-start.sh 实时 日常开发
重建模式 docker-compose up --build 2-3分钟 生产部署
快速重启 docker-compose restart 10秒 配置更改

决策树

修改了代码?
├── 是
│   ├── 开发阶段 → 使用 dev-start.sh自动同步
│   └── 生产部署 → 使用 docker-start.sh重建镜像
│
└── 否(仅配置)
    └── docker-compose restart app

🔧 常用操作

查看日志

# 开发环境日志
docker-compose -f docker-compose.dev.yml logs -f app

# 生产环境日志
docker-compose logs -f app

重启服务

# 开发环境
docker-compose -f docker-compose.dev.yml restart app

# 生产环境
docker-compose restart app

停止服务

# 开发环境
docker-compose -f docker-compose.dev.yml stop

# 生产环境
docker-compose stop

# 完全删除(包括数据)
docker-compose down -v

进入容器

# 进入应用容器
docker-compose exec app sh

# 进入 MySQL
docker-compose exec mysql mysql -u root -p1qazse42W3

# 进入 Redis
docker-compose exec redis redis-cli

📁 目录结构

app/backend/
├── docker-compose.yml              # 生产配置
├── docker-compose.dev.yml          # 开发配置 ⭐
├── Dockerfile                      # 应用镜像
├── .env.docker                     # 环境变量
├── .dockerignore                   # 忽略文件
│
├── dev-start.sh                    # 开发启动脚本 ⭐
├── dev-start.bat                   # 开发启动脚本(Win)
├── docker-start.sh                 # 生产启动脚本
├── docker-start.bat                # 生产启动脚本(Win)
│
├── verify-docker.js                # 验证脚本
├── DOCKER_README.md                # 部署文档
├── DOCKER_SYNC.md                  # 同步指南 ⭐
├── DOCKER_QUICKREF.md              # 速查卡片
├── DOCKER_FILES.md                 # 文件清单
│
├── init-scripts/                   # 初始化脚本
│   ├── 01-init-database.sql       # 分区表结构
│   ├── 02-seed-data.sql           # 种子数据
│   └── 03-partition-maintenance.sql
│
└── src/                            # 源代码

🎯 推荐工作流

日常开发流程

# 1. 启动开发环境
./dev-start.sh

# 2. 修改代码src/ 目录)
# 修改会自动同步到容器

# 3. 查看效果
# 访问 http://localhost:3000

# 4. 提交代码
# 正常使用 git

部署流程

# 1. 代码测试完成

# 2. 构建并启动生产环境
./docker-start.sh

# 3. 验证部署
node verify-docker.js

# 4. 完成

📞 故障排查

问题 解决方案
代码不生效 docker-compose restart app
端口占用 修改 docker-compose.yml 端口映射
数据库错误 docker-compose down -v 重新初始化
构建失败 docker builder prune -f 清除缓存

📚 相关文档