|
|
# 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)
|