# 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` | 文件清单 | --- ## 🚀 快速开始 ### 开发环境(推荐日常开发) ```bash cd app/backend ./dev-start.sh # Linux/Mac # 或 -dev-start.bat # Windows ``` 特点: - ✅ 代码修改自动同步 - ✅ 热重载,秒级生效 - ✅ 无需重建镜像 ### 生产环境(部署测试) ```bash 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 ``` --- ## 🔧 常用操作 ### 查看日志 ```bash # 开发环境日志 docker-compose -f docker-compose.dev.yml logs -f app # 生产环境日志 docker-compose logs -f app ``` ### 重启服务 ```bash # 开发环境 docker-compose -f docker-compose.dev.yml restart app # 生产环境 docker-compose restart app ``` ### 停止服务 ```bash # 开发环境 docker-compose -f docker-compose.dev.yml stop # 生产环境 docker-compose stop # 完全删除(包括数据) docker-compose down -v ``` ### 进入容器 ```bash # 进入应用容器 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/ # 源代码 ``` --- ## 🎯 推荐工作流 ### 日常开发流程 ```bash # 1. 启动开发环境 ./dev-start.sh # 2. 修改代码(src/ 目录) # 修改会自动同步到容器 # 3. 查看效果 # 访问 http://localhost:3000 # 4. 提交代码 # 正常使用 git ``` ### 部署流程 ```bash # 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` 清除缓存 | --- ## 📚 相关文档 - [完整部署指南](./DOCKER_README.md) - [代码同步指南](./DOCKER_SYNC.md) ⭐ - [快速参考卡片](./DOCKER_QUICKREF.md) - [Docker 文件清单](./DOCKER_FILES.md)