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.

133 lines
3.4 KiB

# Docker 部署文件清单
## 📁 文件列表
| 文件 | 说明 | 大小 |
|------|------|------|
| `docker-compose.yml` | Docker 编排配置 | ~3KB |
| `Dockerfile` | 后端应用镜像构建 | ~1.5KB |
| `.env.docker` | Docker 环境变量 | ~600B |
| `.dockerignore` | Docker 忽略文件 | ~600B |
| `docker-start.sh` | Linux/Mac 启动脚本 | ~2.5KB |
| `docker-start.bat` | Windows 启动脚本 | ~1.8KB |
| `DOCKER_README.md` | 部署文档 | ~6KB |
| `verify-docker.js` | 部署验证脚本 | ~7KB |
## 📂 目录结构
```
app/backend/
├── docker-compose.yml # Docker 编排配置
├── Dockerfile # 后端应用镜像
├── .env.docker # Docker 环境变量
├── .dockerignore # Docker 忽略文件
├── docker-start.sh # Linux/Mac 启动脚本 ⭐
├── docker-start.bat # Windows 启动脚本 ⭐
├── DOCKER_README.md # 完整部署文档
├── DOCKER_FILES.md # 本文档
├── verify-docker.js # 部署验证脚本
├── init-scripts/ # 数据库初始化脚本
│ ├── 01-init-database.sql # 创建表结构(含分区)⭐
│ ├── 02-seed-data.sql # 种子数据 ⭐
│ └── 03-partition-maintenance.sql # 分区维护工具
├── src/ # 后端源代码
├── prisma/ # Prisma 配置
└── ...
```
## 🚀 快速使用
### 1. 一键启动
**Windows:**
```bash
docker-start.bat
```
**Linux/Mac:**
```bash
./docker-start.sh
```
### 2. 手动启动
```bash
docker-compose up --build -d
```
### 3. 验证部署
```bash
node verify-docker.js
```
## 📊 包含的服务
| 服务 | 镜像 | 端口 | 说明 |
|------|------|------|------|
| MySQL | mysql:8.0 | 3306 | 主数据库(含分区表) |
| Redis | redis:7-alpine | 6379 | 缓存服务 |
| App | 本地构建 | 3000 | 后端 API 服务 |
| AKShare | 阿里云镜像 | 8000 | 数据源(可选) |
## 🗄️ 数据库分区详情
### 分区表4张
| 表名 | 分区数 | 分区范围 |
|------|-------|---------|
| `stock_quotes_history` | 37 | 2024-01 ~ 2026-12 + future |
| `sector_quotes` | 37 | 2024-01 ~ 2026-12 + future |
| `high_low_stocks` | 37 | 2024-01 ~ 2026-12 + future |
| `momentum_stocks` | 37 | 2024-01 ~ 2026-12 + future |
### 普通表8张
- `market_indices` - 市场指数
- `sectors` - 版块信息
- `stocks` - 股票信息
- `stock_quotes_hot` - 热数据
- `stock_klines` - 股票K线
- `sector_klines` - 版块K线
- `users` - 用户表
- `user_favorites` - 自选股
## 📈 数据卷
| 卷名 | 用途 |
|------|------|
| `mysql_data` | MySQL 持久化数据 |
| `redis_data` | Redis 持久化数据 |
| `./logs` | 应用日志 |
## 🔧 默认配置
- **MySQL**: root / 1qazse42W3
- **API**: http://localhost:3000
- **数据库**: aguzhitou
- **字符集**: utf8mb4
## 📝 注意事项
1. 首次启动需要下载镜像,请耐心等待
2. MySQL 初始化脚本会自动执行(约需 30 秒)
3. 确保 3306、6379、3000 端口未被占用
4. 数据会持久化到 Docker Volumes
## 🆘 故障排查
```bash
# 查看日志
docker-compose logs -f
# 重启服务
docker-compose restart
# 完全重置(删除所有数据)
docker-compose down -v
```
## 📞 技术支持
如有问题,请参考 `DOCKER_README.md` 或检查日志文件。