Files
2025-09-07 20:03:14 +08:00

322 lines
8.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 智能穿戴系统客户现场部署使用说明
## 概述
`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+