プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2021/10/20

Rocket.Chat で使用している MongoDB をアップグレードする

event_note2021/10/20 5:18

Rocket.Chat をアップグレードしたら、MongoDB をアップグレードするように警告が表示されるようになったので、MongoDB もアップグレードしました。

アップグレードについては、以下の記事が参考になりました。

環境

アップグレード前

  • Rocket.Chat 3.10.4
  • MongoDB 4.0.22

アップグレード後

  • Rocket.Chat 4.0.3
  • MongoDB 5.0.3

やったこと

Rocket.Chat を 4.0.3 にアップグレード

3.10.4 から 4.0.3 へのアップグレードはバージョンを変更するだけでいけました。

  • docker コンテナ停止
  • docker-compose.yml の Rocket.Chat のバージョンを 4.0.3 に変更
  • docker コンテナ起動

この時点で Rocket.Chat 4.0.3、MongoDB 4.0.22 の組み合わせとなりましたが、以下のメッセージが表示されるようになりました。

rocketchat_1          | +----------------------------------------------+
rocketchat_1          | |                SERVER RUNNING                |
rocketchat_1          | +----------------------------------------------+
rocketchat_1          | |                                              |
rocketchat_1          | |  Rocket.Chat Version: 4.0.3                  |
rocketchat_1          | |       NodeJS Version: 12.22.1 - x64          |
rocketchat_1          | |      MongoDB Version: 4.0.27                 |
rocketchat_1          | |       MongoDB Engine: wiredTiger             |
rocketchat_1          | |             Platform: linux                  |
rocketchat_1          | |         Process Port: 3000                   |
rocketchat_1          | |             Site URL: http://localhost:3000  |
rocketchat_1          | |     ReplicaSet OpLog: Enabled                |
rocketchat_1          | |          Commit Hash: 6e49fc9466             |
rocketchat_1          | |        Commit Branch: HEAD                   |
rocketchat_1          | |                                              |
rocketchat_1          | +----------------------------------------------+
rocketchat_1          | +----------------------------------------------------------------------+
rocketchat_1          | |                              DEPRECATION                             |
rocketchat_1          | +----------------------------------------------------------------------+
rocketchat_1          | |                                                                      |
rocketchat_1          | |  YOUR CURRENT MONGODB VERSION (4.0.22) IS DEPRECATED.                |
rocketchat_1          | |  IT WILL NOT BE SUPPORTED ON ROCKET.CHAT VERSION 5.0.0 AND GREATER,  |
rocketchat_1          | |  PLEASE UPGRADE MONGODB TO VERSION 4.2 OR GREATER                    |
rocketchat_1          | |                                                                      |
rocketchat_1          | +----------------------------------------------------------------------+
MongoDB version 4.0.22 is deprecated, please upgrade your installation.

MongoDB 4.0 は非推奨なので、4.2 以上へアップグレードするよう促されます。
なので、ついでに最新の 5.0 までアップグレードします。

MongoDB を 4.2 にアップグレード

4.0 から 4.2 へのアップグレードは docker-compose.yml を修正して再起動するだけでいけました。

  • docker コンテナ停止
  • docker-compose.yml の MongoDB のバージョンを 4.0 に変更
  • docker コンテナ起動

MongoDB を 4.4 にアップグレード

4.2 から 4.4 へのアップグレードは docker-compose.yml を修正して再起動するだけではだめでした。
先に以下のコマンドを実行する必要があります。

$ docker exec mongo bash -c 'mongo --eval "db.adminCommand( { setFeatureCompatibilityVersion: \"4.2\" } )"'`

流れとしては以下です。

  • 上記のコマンドを実行
  • docker コンテナ停止
  • docker-compose.yml の MongoDB のバージョンを 4.4 に変更
  • docker コンテナ起動

MongoDB を 5.0 にアップグレード

先ほどと同じです。
上記のコマンドのバージョンを 4.4 に変更して実行します

$ docker exec mongo bash -c 'mongo --eval "db.adminCommand( { setFeatureCompatibilityVersion: \"4.4\" } )"'`

流れとしては以下です。

  • 上記のコマンドを実行
  • docker コンテナ停止
  • docker-compose.yml の MongoDB のバージョンを 5.0 に変更
  • docker コンテナ起動