系统更新
本文档介绍如何安全地更新 MISEB 系统到最新版本。
更新脚本
系统提供了一键更新脚本 upgrade.sh,可以安全地更新容器镜像而不影响业务数据。
使用方法
bash
# 进入部署目录
cd /path/to/deploy
# 执行更新脚本
./upgrade.sh更新流程
脚本会自动执行以下步骤:
1.23. 登录镜像仓库 - 连接到 cdiwit-registry.cn-hangzhou.cr.aliyuncs.com 2. 拉取最新镜像 - 下载 admin、front、nginx 的最新版本 3. 停止旧容器 - 安全停止当前运行的容器 4. 启动新容器 - 使用新镜像启动服务 5. 清理旧镜像 - 可选择清理未使用的旧镜像释放空间
执行示例
bash
$ ./upgrade.sh
==========================================
MISEB多商户电商管理系统 - 镜像更新
版本: 1.0.0
==========================================
[信息] 当前运行的镜像:
CONTAINER REPOSITORY TAG
miseb-admin cdiwit-registry.cn-hangzhou.cr.aliyuncs.com/miseb-multi-mer/admin 1.0.0
miseb-front cdiwit-registry.cn-hangzhou.cr.aliyuncs.com/miseb-multi-mer/front 1.0.0
miseb-nginx cdiwit-registry.cn-hangzhou.cr.aliyuncs.com/miseb-multi-mer/nginx 1.0.0
是否继续更新镜像? (y/n): y
[步骤 1/5] 登录Docker仓库...
Login Succeeded
[步骤 2/5] 拉取最新镜像...
Pulling miseb-admin ... done
Pulling miseb-front ... done
Pulling nginx ... done
[完成] 镜像拉取成功
[步骤 3/5] 停止旧容器...
[完成] 旧容器已停止
[步骤 4/5] 启动新容器...
[完成] 新容器已启动
[步骤 5/5] 清理旧镜像...
是否清理未使用的旧镜像以释放空间? (y/n): y
[完成] 旧镜像已清理
==========================================
更新完成!
==========================================注意事项
更新前准备
重要提示
在执行更新前,请确保已做好以下准备工作。
备份数据库
bash# 备份MySQL数据库 docker exec miseb-mysql mysqldump -uroot -p'密码' miseb > backup_$(date +%Y%m%d_%H%M%S).sql备份配置文件
bash# 备份.env配置 cp .env .env.backup选择低峰期更新
- 建议在业务低峰期(如凌晨)执行更新
- 更新过程中服务会短暂中断(约1-2分钟)
检查磁盘空间
bash# 确保有足够空间下载新镜像 df -h
更新中注意
不要强制中断
- 更新过程中请勿使用 Ctrl+C 强制中断
- 如果必须中断,请在完成当前步骤后再中断
网络稳定性
- 确保服务器网络稳定
- 镜像下载可能需要几分钟时间
观察日志
- 更新完成后建议观察服务日志确认正常
bashdocker compose logs -f --tail 100
更新后检查
验证服务状态
bashdocker compose ps检查健康状态
bash# 检查Admin服务 curl -s http://localhost:8080/actuator/health # 检查Front服务 curl -s http://localhost:8081/actuator/health访问测试
- 访问平台管理端:http://域名/platform/
- 访问商户管理端:http://域名/merchant/
- 访问H5商城:http://域名/h5/
手动更新
如果需要手动更新或更新脚本出现问题,可以手动执行以下命令:
bash
# 1. 登录镜像仓库
# 注意:镜像仓库密码为临时凭证,请向客服或软件提供商获取最新密码
docker login cdiwit-registry.cn-hangzhou.cr.aliyuncs.com --username cr_temp_user --password <请向客服或软件提供商索取最新密码>
# 2. 拉取最新镜像
docker compose pull
# 3. 停止并重建容器
docker compose down
docker compose up -d
# 4. 查看服务状态
docker compose ps
# 5. 可选:清理旧镜像
docker image prune -f指定版本更新
如果需要更新到指定版本而非最新版本:
bash
# 1. 修改 .env 文件中的版本号
vim .env
# 修改 IMAGE_TAG=1.0.1
# 2. 拉取指定版本
docker compose pull
# 3. 重建容器
docker compose up -d --force-recreate回滚到旧版本
如果更新后出现问题,需要回滚到旧版本:
bash
# 1. 停止当前容器
docker compose down
# 2. 修改 .env 中的版本号为旧版本
vim .env
# 修改 IMAGE_TAG=1.0.0
# 3. 拉取旧版本镜像
docker compose pull
# 4. 启动服务
docker compose up -d
# 5. 如果旧版本镜像已被删除,联系管理员获取常见问题
更新后服务无法启动
检查日志排查原因:
bashdocker compose logs miseb-admin检查配置文件是否与新版本兼容
尝试回滚到旧版本
镜像拉取失败
- 检查网络连接
- 检查Docker仓库登录状态:bash
docker login cdiwit-registry.cn-hangzhou.cr.aliyuncs.com - 检查磁盘空间
数据库迁移失败
查看详细错误日志:
bashdocker logs miseb-admin 2>&1 | grep -i "flyway\|migration"如果是版本冲突,可能需要手动处理迁移脚本
自动更新
警告
不建议在生产环境启用自动更新,可能导致意外停机。
如果确实需要自动更新,可以配置定时任务:
bash
# 编辑crontab
crontab -e
# 每周日凌晨3点自动更新(不推荐生产环境使用)
0 3 * * 0 cd /path/to/deploy && ./upgrade.sh < /dev/null