Refactor Dockerfile for Python 3.13, enhance health check, and add server info retrieval. Implement LOAD DATA INFILE support in DatabaseManager for improved CSV import performance. Introduce script editor for SQL management with save and format functionalities. Update UI for database management and script editing, including status indicators and improved layout.
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
# CapacityReport Docker 部署指南
|
||||
|
||||
## 环境要求
|
||||
|
||||
- Docker Engine 20.10+
|
||||
- Docker Compose 2.0+
|
||||
|
||||
## 快速启动
|
||||
|
||||
```bash
|
||||
# 启动所有服务
|
||||
docker-compose up -d
|
||||
|
||||
# 查看日志
|
||||
docker-compose logs -f
|
||||
|
||||
# 停止服务
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
## 内网离线部署
|
||||
|
||||
### 步骤1:准备镜像(在有外网的机器上)
|
||||
|
||||
```bash
|
||||
# 拉取所需镜像
|
||||
docker pull python:3.11-slim
|
||||
docker pull mysql:8.0
|
||||
|
||||
# 导出为文件
|
||||
docker save -o capacity-images.tar python:3.11-slim mysql:8.0
|
||||
|
||||
# 将 capacity-images.tar 传输到目标机器
|
||||
```
|
||||
|
||||
### 步骤2:加载镜像(在目标机器上)
|
||||
|
||||
```bash
|
||||
# 加载镜像
|
||||
docker load -i capacity-images.tar
|
||||
```
|
||||
|
||||
### 步骤3:构建并启动
|
||||
|
||||
```bash
|
||||
# 构建应用镜像
|
||||
docker-compose build
|
||||
|
||||
# 启动服务
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## 配置说明
|
||||
|
||||
### 数据库连接
|
||||
|
||||
Docker 环境下,需要修改 `Configure.json` 中的数据库地址:
|
||||
|
||||
```json
|
||||
{
|
||||
"MySQL_DBInfo": {
|
||||
"host": "mysql",
|
||||
"port": 3306,
|
||||
"user": "root",
|
||||
"passwd": "gmcc123",
|
||||
"dbname": "CapacityReport"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**注意**:
|
||||
- Docker Compose 中 host 应设置为 `mysql`(服务名),而不是 `localhost` 或 `127.0.0.1`
|
||||
- 数据库 `CapacityReport` 会在容器首次启动时自动创建(使用 utf8mb4 字符集)
|
||||
- 如果数据目录已存在(从持久化卷恢复),数据库不会被重复创建,这是安全的
|
||||
|
||||
### 端口映射
|
||||
|
||||
| 服务 | 端口 | 说明 |
|
||||
|-----|------|-----|
|
||||
| app | 9081 | Web 应用 |
|
||||
| mysql | 3306 | MySQL 数据库 |
|
||||
|
||||
## LOAD DATA INFILE 支持
|
||||
|
||||
MySQL 容器已配置支持 `LOAD DATA LOCAL INFILE`:
|
||||
|
||||
1. 服务端配置:`mysql/conf.d/custom.cnf` 中 `local_infile = ON`
|
||||
2. 启动参数:`--local-infile=ON`
|
||||
3. Python 客户端:PyMySQL 连接时 `local_infile=True`
|
||||
|
||||
验证是否启用:
|
||||
|
||||
```bash
|
||||
docker exec -it capacity-mysql mysql -uroot -pgmcc123 -e "SHOW VARIABLES LIKE 'local_infile';"
|
||||
```
|
||||
|
||||
预期输出:
|
||||
```
|
||||
+---------------+-------+
|
||||
| Variable_name | Value |
|
||||
+---------------+-------+
|
||||
| local_infile | ON |
|
||||
+---------------+-------+
|
||||
```
|
||||
|
||||
## 数据持久化
|
||||
|
||||
| 路径 | 说明 |
|
||||
|-----|-----|
|
||||
| ./cache | 处理缓存和历史记录 |
|
||||
| ./logs | 应用日志 |
|
||||
| mysql-data | MySQL 数据(Docker 卷) |
|
||||
|
||||
## 常用命令
|
||||
|
||||
```bash
|
||||
# 查看运行状态
|
||||
docker-compose ps
|
||||
|
||||
# 查看应用日志
|
||||
docker-compose logs -f app
|
||||
|
||||
# 查看 MySQL 日志
|
||||
docker-compose logs -f mysql
|
||||
|
||||
# 重启应用
|
||||
docker-compose restart app
|
||||
|
||||
# 进入应用容器
|
||||
docker exec -it capacity-report bash
|
||||
|
||||
# 进入 MySQL
|
||||
docker exec -it capacity-mysql mysql -uroot -pgmcc123
|
||||
|
||||
# 备份数据库
|
||||
docker exec capacity-mysql mysqldump -uroot -pgmcc123 CapacityReport > backup.sql
|
||||
|
||||
# 恢复数据库
|
||||
docker exec -i capacity-mysql mysql -uroot -pgmcc123 CapacityReport < backup.sql
|
||||
|
||||
# 清空数据重新开始
|
||||
docker-compose down -v
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## 故障排查
|
||||
|
||||
### 应用无法连接 MySQL
|
||||
|
||||
1. 检查 MySQL 是否就绪:
|
||||
```bash
|
||||
docker-compose logs mysql
|
||||
```
|
||||
|
||||
2. 验证 MySQL 健康状态:
|
||||
```bash
|
||||
docker exec capacity-mysql mysqladmin ping -uroot -pgmcc123
|
||||
```
|
||||
|
||||
3. 检查 Configure.json 中 host 设置是否为 `mysql`
|
||||
|
||||
### LOAD DATA INFILE 不工作
|
||||
|
||||
1. 检查 MySQL 变量:
|
||||
```bash
|
||||
docker exec -it capacity-mysql mysql -uroot -pgmcc123 -e "SHOW VARIABLES LIKE 'local_infile';"
|
||||
```
|
||||
|
||||
2. 检查配置文件:
|
||||
```bash
|
||||
docker exec -it capacity-mysql cat /etc/mysql/conf.d/custom.cnf
|
||||
```
|
||||
|
||||
### cache 目录权限问题
|
||||
|
||||
```bash
|
||||
chmod -R 777 cache/
|
||||
```
|
||||
Reference in New Issue
Block a user