322 lines
8.3 KiB
Markdown
322 lines
8.3 KiB
Markdown
# 智能穿戴系统客户现场部署使用说明
|
||
|
||
## 概述
|
||
|
||
`deploy-client.sh` 是智能穿戴系统的客户现场部署脚本,支持使用预构建镜像进行快速部署,采用Docker命名卷实现数据持久化。该脚本提供完整的自动化部署流程,包括配置验证、镜像管理、服务启动、定制化配置等功能。
|
||
|
||
## 核心特性
|
||
|
||
- ✅ **智能部署模式**: 支持在线/离线两种部署模式
|
||
- ✅ **数据持久化**: 使用Docker命名卷确保数据安全
|
||
- ✅ **配置验证**: 自动验证配置文件一致性
|
||
- ✅ **智能备份**: 升级前自动备份现有数据
|
||
- ✅ **定制化支持**: 自动应用客户定制配置
|
||
- ✅ **健康检查**: 完整的服务启动状态监控
|
||
- ✅ **跨平台兼容**: 支持CentOS等多种Linux发行版
|
||
|
||
## 系统架构
|
||
|
||
### 服务组件
|
||
- **ljwx-mysql**: 数据库服务 (端口: 3306)
|
||
- **ljwx-redis**: 缓存服务 (端口: 6379)
|
||
- **ljwx-boot**: 后端API服务 (端口: 9998)
|
||
- **ljwx-bigscreen**: 数据大屏服务 (端口: 8001)
|
||
- **ljwx-admin**: 管理端服务 (端口: 8088)
|
||
|
||
### 数据持久化
|
||
- `client-deployment_mysql_data`: MySQL数据卷
|
||
- `client-deployment_redis_data`: Redis数据卷
|
||
- `client-deployment_ljwx_boot_data`: 后端数据卷
|
||
- `client-deployment_ljwx_bigscreen_data`: 大屏数据卷
|
||
|
||
## 使用方法
|
||
|
||
### 基本语法
|
||
```bash
|
||
./deploy-client.sh [配置文件名] [offline]
|
||
```
|
||
|
||
### 部署模式
|
||
|
||
#### 在线部署 (推荐)
|
||
```bash
|
||
# 使用默认配置文件
|
||
./deploy-client.sh
|
||
|
||
# 使用指定配置文件
|
||
./deploy-client.sh my-config.env
|
||
```
|
||
|
||
#### 离线部署
|
||
```bash
|
||
# 离线模式 + 默认配置
|
||
./deploy-client.sh offline
|
||
|
||
# 离线模式 + 指定配置
|
||
./deploy-client.sh my-config.env offline
|
||
```
|
||
|
||
## 部署前准备
|
||
|
||
### 1. 环境要求
|
||
- Docker Engine (已安装并运行)
|
||
- docker-compose (已安装)
|
||
- 网络连接 (在线模式需要)
|
||
|
||
### 2. 必需文件检查
|
||
```
|
||
client-deployment/
|
||
├── deploy-client.sh # 主部署脚本
|
||
├── custom-config.env # 配置文件
|
||
├── custom-config.py # Python自定义配置
|
||
├── custom-admin-config.js # 前端自定义配置
|
||
├── docker-compose.yml # Docker编排文件
|
||
├── client-data.sql # 客户数据(首次部署)
|
||
└── custom-assets/ # 自定义资源目录
|
||
└── logo.svg # 自定义logo文件
|
||
```
|
||
|
||
### 3. 配置文件准备
|
||
|
||
复制并编辑配置文件:
|
||
```bash
|
||
cp custom-config.env my-client-config.env
|
||
```
|
||
|
||
关键配置项:
|
||
```env
|
||
# 服务器地址
|
||
SERVER_IP=192.168.1.83
|
||
|
||
# 端口配置
|
||
LJWX_ADMIN_EXTERNAL_PORT=8088
|
||
LJWX_BIGSCREEN_EXTERNAL_PORT=8001
|
||
LJWX_BOOT_EXTERNAL_PORT=9998
|
||
|
||
# 定制化配置
|
||
VITE_APP_TITLE=客户定制管理平台
|
||
BIGSCREEN_TITLE=客户数据大屏
|
||
COMPANY_NAME=客户公司名称
|
||
VITE_CUSTOM_LOGO=true
|
||
|
||
# 镜像版本
|
||
LJWX_ADMIN_VERSION=2.0.1
|
||
LJWX_BIGSCREEN_VERSION=2.0.1
|
||
LJWX_BOOT_VERSION=2.0.1
|
||
```
|
||
|
||
## 部署流程详解
|
||
|
||
### 第一阶段:环境检查与配置验证
|
||
1. **系统兼容性检查**: 自动检测CentOS并处理文件格式
|
||
2. **依赖检查**: 验证Docker和docker-compose安装
|
||
3. **配置文件验证**: 加载并验证配置文件格式
|
||
4. **必需文件检查**: 确认所有必需的配置文件存在
|
||
|
||
### 第二阶段:数据策略选择
|
||
根据现有数据卷情况自动判断部署类型:
|
||
|
||
#### 首次部署
|
||
- 创建新的Docker命名卷
|
||
- 使用 `client-data.sql` 进行数据初始化
|
||
- 无需备份操作
|
||
|
||
#### 升级部署
|
||
- 检测现有命名卷
|
||
- 提供备份策略选择:
|
||
1. **在线备份**: 完整SQL导出 (推荐)
|
||
2. **离线卷备份**: 直接备份Docker卷
|
||
3. **跳过备份**: 风险自担
|
||
4. **退出部署**: 手动处理
|
||
|
||
### 第三阶段:镜像管理
|
||
1. **镜像版本检查**: 验证配置文件中的镜像版本
|
||
2. **本地镜像检查**: 扫描本地已有镜像
|
||
3. **镜像拉取策略**:
|
||
- 在线模式:自动登录阿里云镜像仓库并拉取缺失镜像
|
||
- 离线模式:仅使用本地镜像,缺失时给出警告
|
||
|
||
### 第四阶段:服务部署
|
||
1. **数据初始化配置**: 首次部署时动态添加数据初始化挂载
|
||
2. **容器清理**: 清理可能冲突的旧容器
|
||
3. **目录权限设置**: 确保日志和备份目录权限正确
|
||
4. **服务启动**: 根据部署模式启动所有服务
|
||
5. **启动等待**: 等待服务完全启动
|
||
|
||
### 第五阶段:健康检查
|
||
对每个服务进行健康状态验证:
|
||
- **ljwx-boot**: 检查 `/actuator/health` 端点
|
||
- **ljwx-bigscreen**: 检查 `/health` 端点
|
||
- **ljwx-admin**: 检查首页访问
|
||
- 超时时间:每个服务120秒
|
||
|
||
### 第六阶段:定制化配置
|
||
1. **大屏URL更新**: 替换前端中的大屏访问地址
|
||
2. **浏览器缓存清理**: 清除可能的缓存问题
|
||
3. **自定义Logo应用**:
|
||
- 检查 `VITE_CUSTOM_LOGO=true` 配置
|
||
- 调用 `customize-admin-logo.sh` 进行logo替换
|
||
4. **挂载配置验证**: 验证容器挂载是否正确
|
||
|
||
## 定制化功能详解
|
||
|
||
### 自定义Logo功能
|
||
脚本支持自动替换管理端Logo:
|
||
|
||
1. **启用条件**: `VITE_CUSTOM_LOGO=true`
|
||
2. **支持格式**: png, jpg, jpeg, svg
|
||
3. **文件位置**: `custom-assets/logo.*` 或包含"logo"的图片文件
|
||
4. **实现机制**:
|
||
- 复制logo文件到容器 `/usr/share/nginx/html/logo-custom.*`
|
||
- 生成JavaScript配置文件
|
||
- 在index.html中注入配置脚本
|
||
- 重新加载nginx配置
|
||
|
||
### 大屏URL配置
|
||
自动更新前端应用中的大屏跳转链接:
|
||
- 读取 `VITE_BIGSCREEN_URL` 配置
|
||
- 在ljwx-admin容器中替换相关配置
|
||
- 确保管理端可正确跳转到数据大屏
|
||
|
||
## 错误处理和故障排除
|
||
|
||
### 常见问题解决
|
||
|
||
#### 1. Docker登录失败
|
||
```bash
|
||
❌ Docker登录失败,请检查用户名和密码
|
||
```
|
||
**解决方案**: 检查网络连接和镜像仓库访问权限
|
||
|
||
#### 2. 镜像拉取失败
|
||
```bash
|
||
❌ 警告: 无法拉取 xxx 镜像
|
||
```
|
||
**解决方案**:
|
||
- 检查网络连接
|
||
- 确认镜像版本号正确
|
||
- 考虑使用离线部署模式
|
||
|
||
#### 3. 服务启动超时
|
||
```bash
|
||
⚠️ 后端服务启动超时,请检查日志
|
||
```
|
||
**解决方案**:
|
||
```bash
|
||
# 查看详细日志
|
||
docker-compose logs ljwx-boot
|
||
|
||
# 检查容器状态
|
||
docker ps -a
|
||
|
||
# 查看文件日志
|
||
tail -f logs/ljwx-boot/*.log
|
||
```
|
||
|
||
#### 4. 端口冲突
|
||
确保以下端口未被占用:
|
||
- 3306 (MySQL)
|
||
- 6379 (Redis)
|
||
- 9998 (后端API)
|
||
- 8001 (数据大屏)
|
||
- 8088 (管理端)
|
||
|
||
### 日志查看工具
|
||
|
||
#### 实时日志监控
|
||
```bash
|
||
# 使用内置日志查看器(推荐)
|
||
./logs-viewer.sh
|
||
|
||
# 查看特定服务日志
|
||
docker-compose logs -f ljwx-boot
|
||
docker-compose logs -f ljwx-admin
|
||
|
||
# 查看文件日志
|
||
tail -f logs/ljwx-boot/*.log
|
||
tail -f logs/mysql/slow.log
|
||
```
|
||
|
||
#### 日志目录结构
|
||
```
|
||
logs/
|
||
├── mysql/ # MySQL数据库日志
|
||
├── redis/ # Redis缓存日志
|
||
├── ljwx-boot/ # 后端服务日志
|
||
├── ljwx-bigscreen/ # 数据大屏日志
|
||
└── ljwx-admin/ # 管理端日志
|
||
```
|
||
|
||
## 部署后管理
|
||
|
||
### 服务管理命令
|
||
```bash
|
||
# 查看服务状态
|
||
docker-compose ps
|
||
|
||
# 重启特定服务
|
||
docker-compose restart ljwx-admin
|
||
|
||
# 停止所有服务(保留数据)
|
||
docker-compose down
|
||
|
||
# 完全清理(⚠️删除数据卷)
|
||
docker-compose down -v
|
||
```
|
||
|
||
### 数据备份恢复
|
||
```bash
|
||
# 在线备份(推荐)
|
||
./auto-backup.sh
|
||
|
||
# 数据恢复
|
||
./restore-backup.sh
|
||
|
||
# 跨平台备份
|
||
./auto-backup-crossplatform.sh
|
||
```
|
||
|
||
### 访问地址
|
||
部署完成后的访问地址:
|
||
- **管理端**: `http://服务器IP:8088`
|
||
- **数据大屏**: `http://服务器IP:8001`
|
||
- **后端API**: `http://服务器IP:9998`
|
||
|
||
默认登录账号:`admin / 123456`
|
||
|
||
## 最佳实践建议
|
||
|
||
### 1. 部署前准备
|
||
- 备份现有数据和配置
|
||
- 确认服务器资源充足 (CPU: 4核, 内存: 8GB, 磁盘: 50GB)
|
||
- 准备好客户定制化资源文件
|
||
|
||
### 2. 配置管理
|
||
- 为每个客户创建独立的配置文件
|
||
- 定期备份配置文件到版本控制系统
|
||
- 记录客户特殊需求和配置变更
|
||
|
||
### 3. 运维监控
|
||
- 定期检查服务健康状态
|
||
- 监控磁盘空间使用情况
|
||
- 设置定时备份任务
|
||
|
||
### 4. 安全注意事项
|
||
- 修改默认管理员密码
|
||
- 配置防火墙规则限制端口访问
|
||
- 定期更新系统和Docker版本
|
||
|
||
## 技术支持
|
||
|
||
如在部署过程中遇到问题,请:
|
||
|
||
1. 查看详细错误日志
|
||
2. 检查系统资源使用情况
|
||
3. 参考故障排除章节
|
||
4. 联系技术支持团队
|
||
|
||
---
|
||
|
||
**文档版本**: v2.0.1
|
||
**更新时间**: 2025-09-06
|
||
**适用版本**: deploy-client.sh v2.0+ |