308 lines
6.5 KiB
Markdown
308 lines
6.5 KiB
Markdown
# DMS合规性测试工具 - 离线部署指南
|
||
|
||
## 概述
|
||
|
||
本指南介绍如何在没有网络连接的环境中部署DMS合规性测试工具。
|
||
|
||
## 文件说明
|
||
|
||
### 生成的文件
|
||
- `dms-compliance-complete-offline-YYYYMMDD-HHMMSS.tar.gz` - 完整离线部署包(约561MB)
|
||
|
||
### 打包脚本
|
||
- `create-offline-package.sh` - 创建完整离线部署包
|
||
- `docker-export.sh` - 仅创建Docker镜像包
|
||
- `install-docker.sh` - Docker安装脚本
|
||
|
||
## 部署步骤
|
||
|
||
### 1. 准备阶段(在有网络的环境中)
|
||
|
||
```bash
|
||
# 创建完整离线部署包
|
||
./create-offline-package.sh
|
||
```
|
||
|
||
这将生成一个包含所有必要组件的tar.gz文件。
|
||
|
||
### 2. 传输到目标环境
|
||
|
||
将生成的 `dms-compliance-complete-offline-*.tar.gz` 文件传输到目标服务器:
|
||
|
||
```bash
|
||
# 使用scp传输(如果有网络连接)
|
||
scp dms-compliance-complete-offline-*.tar.gz user@target-server:/path/to/destination/
|
||
|
||
# 或使用U盘、移动硬盘等物理介质传输
|
||
```
|
||
|
||
### 3. 在目标环境中部署
|
||
|
||
```bash
|
||
# 解压部署包
|
||
tar -xzf dms-compliance-complete-offline-*.tar.gz
|
||
|
||
# 进入部署目录
|
||
cd dms-compliance-complete-offline-*
|
||
|
||
# 运行一键安装脚本
|
||
./install.sh
|
||
```
|
||
|
||
### 4. 验证部署
|
||
|
||
安装完成后,访问以下地址验证服务:
|
||
|
||
- **API服务器**: http://localhost:5050
|
||
- **历史查看器**: http://localhost:5051
|
||
|
||
## 部署包内容
|
||
|
||
### 核心组件
|
||
- DMS合规性测试工具Docker镜像
|
||
- Nginx Docker镜像(用于反向代理)
|
||
- Docker和Docker Compose安装脚本
|
||
- 自动化部署脚本
|
||
|
||
### 配置文件
|
||
- `docker-compose.yml` - Docker服务编排配置
|
||
- `nginx/nginx.conf` - Nginx配置(如果存在)
|
||
- `config/` - 应用配置文件(如果存在)
|
||
|
||
### 脚本文件
|
||
- `install.sh` - 一键安装脚本
|
||
- `deploy.sh` - 部署脚本
|
||
- `stop.sh` - 停止服务脚本
|
||
- `uninstall.sh` - 卸载脚本
|
||
- `install-docker.sh` - Docker安装脚本
|
||
|
||
### 数据目录
|
||
- `data/test_reports/` - 测试报告存储
|
||
- `data/uploads/` - 上传文件存储
|
||
- `data/logs/` - 应用日志存储
|
||
|
||
## 系统要求
|
||
|
||
### 最低要求
|
||
- **CPU**: 2核心
|
||
- **内存**: 2GB
|
||
- **磁盘**: 5GB可用空间
|
||
- **操作系统**:
|
||
- Ubuntu 18.04+
|
||
- CentOS 7+
|
||
- RHEL 7+
|
||
- Debian 9+
|
||
|
||
### 推荐配置
|
||
- **CPU**: 4核心
|
||
- **内存**: 4GB
|
||
- **磁盘**: 10GB可用空间
|
||
|
||
## 安装选项
|
||
|
||
### 方法一:一键安装(推荐)
|
||
```bash
|
||
./install.sh
|
||
```
|
||
- 自动检测Docker是否已安装
|
||
- 如未安装,提示安装Docker
|
||
- 自动部署应用服务
|
||
|
||
### 方法二:分步安装
|
||
```bash
|
||
# 1. 安装Docker(如果需要)
|
||
./install-docker.sh
|
||
|
||
# 2. 重新登录或刷新用户组
|
||
newgrp docker
|
||
|
||
# 3. 部署应用
|
||
./deploy.sh
|
||
```
|
||
|
||
## 服务管理
|
||
|
||
### 基本操作
|
||
```bash
|
||
# 查看服务状态
|
||
docker-compose ps
|
||
|
||
# 查看服务日志
|
||
docker-compose logs
|
||
|
||
# 重启服务
|
||
docker-compose restart
|
||
|
||
# 停止服务
|
||
./stop.sh
|
||
|
||
# 完全卸载
|
||
./uninstall.sh
|
||
```
|
||
|
||
### 高级操作
|
||
```bash
|
||
# 查看详细日志
|
||
docker-compose logs -f dms-compliance-tool
|
||
|
||
# 进入容器
|
||
docker exec -it dms-compliance-tool bash
|
||
|
||
# 查看容器资源使用
|
||
docker stats dms-compliance-tool
|
||
```
|
||
|
||
## 网络配置
|
||
|
||
### 端口说明
|
||
- **5050**: API服务器端口
|
||
- **5051**: 历史查看器端口
|
||
- **80/443**: Nginx反向代理端口(可选)
|
||
|
||
### 防火墙配置
|
||
```bash
|
||
# CentOS/RHEL
|
||
sudo firewall-cmd --permanent --add-port=5050/tcp
|
||
sudo firewall-cmd --permanent --add-port=5051/tcp
|
||
sudo firewall-cmd --reload
|
||
|
||
# Ubuntu/Debian
|
||
sudo ufw allow 5050
|
||
sudo ufw allow 5051
|
||
```
|
||
|
||
### 使用Nginx反向代理
|
||
```bash
|
||
# 启动包含Nginx的完整服务
|
||
docker-compose --profile with-nginx up -d
|
||
```
|
||
|
||
## 故障排除
|
||
|
||
### 常见问题
|
||
|
||
1. **Docker未安装或未启动**
|
||
```bash
|
||
# 检查Docker状态
|
||
sudo systemctl status docker
|
||
|
||
# 启动Docker
|
||
sudo systemctl start docker
|
||
```
|
||
|
||
2. **端口冲突**
|
||
- 修改 `docker-compose.yml` 中的端口映射
|
||
- 或停止占用端口的其他服务
|
||
|
||
3. **权限问题**
|
||
```bash
|
||
sudo chown -R $USER:$USER data/
|
||
chmod -R 755 data/
|
||
```
|
||
|
||
4. **内存不足**
|
||
- 确保系统有至少2GB可用内存
|
||
- 关闭不必要的服务
|
||
|
||
### 日志查看
|
||
```bash
|
||
# 应用日志
|
||
docker-compose logs dms-compliance-tool
|
||
|
||
# 系统日志
|
||
journalctl -u docker
|
||
|
||
# 容器详细信息
|
||
docker inspect dms-compliance-tool
|
||
```
|
||
|
||
### 性能优化
|
||
```bash
|
||
# 清理未使用的Docker资源
|
||
docker system prune -f
|
||
|
||
# 查看磁盘使用情况
|
||
df -h
|
||
|
||
# 查看内存使用情况
|
||
free -h
|
||
```
|
||
|
||
## 数据备份与恢复
|
||
|
||
### 备份数据
|
||
```bash
|
||
# 备份所有数据
|
||
tar -czf dms-backup-$(date +%Y%m%d).tar.gz data/
|
||
|
||
# 仅备份测试报告
|
||
tar -czf reports-backup-$(date +%Y%m%d).tar.gz data/test_reports/
|
||
```
|
||
|
||
### 恢复数据
|
||
```bash
|
||
# 停止服务
|
||
./stop.sh
|
||
|
||
# 恢复数据
|
||
tar -xzf dms-backup-YYYYMMDD.tar.gz
|
||
|
||
# 重启服务
|
||
./deploy.sh
|
||
```
|
||
|
||
## 更新升级
|
||
|
||
1. 停止当前服务:`./stop.sh`
|
||
2. 备份数据:`cp -r data/ data_backup/`
|
||
3. 部署新版本
|
||
4. 恢复数据(如需要)
|
||
|
||
## 安全建议
|
||
|
||
1. **定期备份** `data/` 目录
|
||
2. **限制网络访问**(仅内网使用)
|
||
3. **定期更新**Docker和系统
|
||
4. **监控资源**使用情况
|
||
5. **设置防火墙**规则
|
||
|
||
## 技术支持
|
||
|
||
如遇到问题,请提供以下信息:
|
||
|
||
1. **系统信息**: `cat /etc/os-release`
|
||
2. **Docker版本**: `docker --version`
|
||
3. **错误日志**: `docker-compose logs`
|
||
4. **系统资源**: `free -h && df -h`
|
||
5. **网络状态**: `netstat -tlnp | grep -E ':(5050|5051)'`
|
||
|
||
## 附录
|
||
|
||
### 目录结构
|
||
```
|
||
dms-compliance-complete-offline-YYYYMMDD-HHMMSS/
|
||
├── README.md # 详细说明文档
|
||
├── VERSION # 版本信息
|
||
├── install.sh # 一键安装脚本
|
||
├── deploy.sh # 部署脚本
|
||
├── stop.sh # 停止脚本
|
||
├── uninstall.sh # 卸载脚本
|
||
├── install-docker.sh # Docker安装脚本
|
||
├── docker-compose.yml # Docker编排配置
|
||
├── dms-compliance-tool.tar # 主应用镜像
|
||
├── nginx-alpine.tar # Nginx镜像
|
||
├── data/ # 数据目录
|
||
│ ├── test_reports/ # 测试报告
|
||
│ ├── uploads/ # 上传文件
|
||
│ └── logs/ # 日志文件
|
||
├── config/ # 配置文件(可选)
|
||
└── nginx/ # Nginx配置(可选)
|
||
```
|
||
|
||
### 环境变量
|
||
可以通过修改 `docker-compose.yml` 中的环境变量来自定义配置:
|
||
|
||
- `FLASK_ENV`: Flask运行环境(production/development)
|
||
- `PYTHONUNBUFFERED`: Python输出缓冲设置
|
||
- `TZ`: 时区设置(默认:Asia/Shanghai)
|