近期,很多运维和自建聊天服务的爱好者计划将 Rocket.Chat 从 7.2.0 升级到 7.6.0,以获取最新的功能和安全修复。本次升级涉及到 Compose 文件的调整、容器镜像的更新以及一些安全性细节优化。以下为升级全过程及要点总结。
💡 Compose 文件的文件名标准
Docker Compose 文件不仅支持传统的 docker-compose.yml,还支持以下几种命名方式:
docker-compose.ymldocker-compose.yamlcompose.ymlcompose.yaml
新版 Docker 推荐使用更简洁的 compose.yml 或 compose.yaml,与其他 YAML 配置文件区分更清晰,也符合最新 Compose 规范。无论选择哪种命名,Docker Compose 都能自动识别并加载,无需手动指定。
⚙️ 升级前的准备
在进行版本升级之前,强烈建议对 MongoDB 数据库进行一次备份。尽管 Rocket.Chat 在启动时会自动处理数据库迁移,但保留快照可以在出现异常时快速恢复。
🔧 Compose 文件修改
升级的核心在于更新 Compose 文件中 Rocket.Chat 镜像的版本号。例如,将以下配置:
image: registry.rocket.chat/rocketchat/rocket.chat:7.2.0
修改为:
image: registry.rocket.chat/rocketchat/rocket.chat:7.6.0
其余环境变量及数据库配置可保持不变。
🚀 升级步骤
1️⃣ 停止当前容器
docker compose down
或使用传统命令:
docker-compose down
2️⃣ 拉取新镜像
docker compose pull
或:
docker-compose pull
3️⃣ 启动新版本
docker compose up -d
或:
docker-compose up -d
4️⃣ 检查状态
docker compose ps
确认新容器已正常运行,并监听正确端口。
🔒 安全性建议
原 Compose 文件中,如果 MongoDB 使用了 ALLOW_EMPTY_PASSWORD: "yes",建议改为设置用户名、密码及指定数据库,提升安全性。例如:
environment:
MONGODB_ROOT_PASSWORD: strong_root_password
MONGODB_USERNAME: rocketchat
MONGODB_PASSWORD: secure_rc_password
MONGODB_DATABASE: rocketchat
同时,在 Rocket.Chat 的环境变量中也应更新对应的连接字符串,加入认证信息及副本集设置。
✅ 结语
此次升级从 7.2.0 到 7.6.0,跨度适中,官方并未在 Release Notes 中标明破坏性更改,整体可平滑升级。升级后不仅能享受性能改进和新特性,还可修复潜在安全隐患。
对于需要长期维护自建聊天服务的场景,保持镜像及时更新、规范使用 Compose 文件及加强数据库安全配置,是维持系统稳定性的重要措施。