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.

227 lines
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` | 文件清单 |
---
## 🚀 快速开始
### 开发环境(推荐日常开发)
```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)