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

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.

# 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` 或检查日志文件。