近期,很多运维和自建聊天服务的爱好者计划将 Rocket.Chat 从 7.2.0 升级到 7.6.0,以获取最新的功能和安全修复。本次升级涉及到 Compose 文件的调整、容器镜像的更新以及一些安全性细节优化。以下为升级全过程及要点总结。


💡 Compose 文件的文件名标准

Docker Compose 文件不仅支持传统的 docker-compose.yml,还支持以下几种命名方式:

  • docker-compose.yml
  • docker-compose.yaml
  • compose.yml
  • compose.yaml

新版 Docker 推荐使用更简洁的 compose.ymlcompose.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 文件及加强数据库安全配置,是维持系统稳定性的重要措施。

Leave a Reply

Your email address will not be published. Required fields are marked *