前提知識

  • growi/.devcontainer/docker-compose.yml で指定されている MongoDB バージョンが commit: eb226b8 external_link で 4.4 から 6.0 にアップグレードされました。
  • docker の性質上それまで利用していたコンテナを使い続けますが、rebuild container した際に mongo:4.4 で開発していたDBデータを引き継ぐためには以下の手順が必要になります。
  • v4.4 から v5.0, v5.0 から v6.0 へ順番にアップグレードする必要があります。

1. v4.4 から v5.0 へのアップグレード

  1. growi/.devcontainer/docker-compose.yml で mongo サービスのイメージを mongo:5.0 へ書き換える
mongo: image: mongo:5.0 restart: unless-stopped ports: - 27017:27017 volumes: - /data/db
  1. robo3T などから以下のコマンドを実行する
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
  1. return value に以下が含まれていることを確認する
"featureCompatibilityVersion" : { "version" : "4.4" }
  1. version が 4.4 でない場合は以下のコマンドで書き換える
db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
  1. Docker Desktop から MongoDB v4.4 を停止する
  2. VSCode で Ctrl + Shift + P から「Remote-Container: Rebuild Container」を選択する

2. v5.0 から v6.0 へのアップグレード

  1. growi/.devcontainer/docker-compose.yml で mongo サービスのイメージを mongo:6.0 へ書き換える
mongo: image: mongo:6.0 restart: unless-stopped ports: - 27017:27017 volumes: - /data/db
  1. robo3T などから以下のコマンドを実行する
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
  1. return value に以下が含まれていることを確認する
"featureCompatibilityVersion" : { "version" : "5.0" }
  1. version が 5.0 でない場合は以下のコマンドで書き換える
db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
  1. Docker Desktop から MongoDB v5.0 を停止する
  2. VSCode で Ctrl + Shift + P から「Remote-Container: Rebuild Container」を選択する

横着編

  1. Docker Desktop から MongoDB コンテナを削除する(DBデータが消えるので注意)
  2. Ctrl + Shift + P から「Remote-Container: Rebuild Container」を選択