服务器升级
安装一次脚本,以后一条命令更新。
适用条件
服务器已经安装统一 LuckyGame,使用 Ubuntu 22.04+、Python 3.10+、Docker Compose v2、Paper 26.2 / Java 25。脚本面向单个 Compose 文件、./data:/data 和单个 LuckyGame JAR 文件挂载。
脚本不用于首次迁移六个独立插件。多 Compose、外部目录、符号链接、env_file 等不支持的布局会在停服前被拒绝。
首次安装脚本
- 从下载页下载完整安装包并核对 SHA256,把其中的
upgrade-luckygame.py放入服务器/opt/minecraft。 - 以有管理权限的用户在 Ubuntu 安装 Python 依赖。下例按 root 用户编写。
apt-get update && apt-get install -y python3 python3-ruamel.yaml curl也可下载单独的版本升级脚本,校验后保存为 upgrade-luckygame.py。安装包内的 UPGRADE.md 包含完整安装与恢复命令。
检查、预演与升级
cd /opt/minecraft
# 只检查版本
python3 upgrade-luckygame.py --check
# 预演,不停服
python3 upgrade-luckygame.py 2.2.0 --dry-run
# 升级到最新的同主版本
python3 upgrade-luckygame.py可在命令后指定目标版本。相同版本会跳过,降级会被拒绝;跨主版本升级需要阅读迁移说明后显式指定版本。脚本不会定时自行运行。
实际执行升级会停服并断开在线玩家。先安排维护时间;--check 和 --dry-run 不停服。
脚本会做什么
- 预检 Compose、Geyser、RCON、运行状态与磁盘空间,锁定升级进程。
- 下载固定版本文件,验证大小、SHA256 / SHA1 与 JAR 版本;下载失败不停服。
- 正常停服,完整备份 Compose、data、local-plugins 与存在的 .env,校验归档。
- 更新唯一 JAR、Java URL / SHA1、基岩资源包和 Geyser 映射,保留第三方配置。
- 重建容器,通过启动日志与 RCON 验证版本。默认最长等待 300 秒,可用 --timeout 600 延长。
备份与失败恢复
备份存放在 backups/luckygame-旧版本-to-新版本-时间-随机后缀/,不会自动删除。50G 系统盘需要定期转存备份,空间不足时脚本会在停服前退出。
下载或预检失败时旧服继续运行;备份失败会尝试重启原容器;开始替换后失败会保留备份并请求停服,日志在备份目录的 failed-startup.log。
恢复时按安装包 UPGRADE.md 验证备份校验和、停服、另存失败现场、恢复完整快照、校验 Compose 后再启动。不要只把旧 JAR 放回新数据上。完整恢复会回到升级停服时的世界状态。