Growi 4.2以前から4.3へアップグレード

How to upgrade growi4.2 to 4.3

* 本ページはプロモーションが含まれています

TR;DR 

下記の構成で、dockerでGrowiが稼働しているものとする

AppVersion
Growi4.2.21
mongodb3.6

Growi 4.3から、大幅な変更があるので、4.2以前から4.3へアップグレードする際は、公式の記事に目を通しておきましょう
また、作業前に、必ずバックアップを取っておきましょう!

mongodbをアップデート 

Growi 4.2.xまでは、mongodb 3.xでも動作可能でしたが4.3ではmongodb 4.4が要求されるので、mongodbのアップデートを行う必要があります
mongodbを3.6->4.0->4.2->4.4の順でアップデートする作業を行う

$ docker-compose stop

docker-compose.yml内の下記mongoバージョン指定を修正(3.6⇢4.0)

mongo:
    image: mongo:4.0
$ docker-compose up -d
$ docker exec -it growi_mongo_1 /bin/bash
# mongo
>db.adminCommand( { setFeatureCompatibilityVersion: "4.0" } )
#exit
$ exit

この操作をmongoのバージョン箇所を変更して繰り返す。 (コンテナ名:growi_mongo_1は個人環境により違うので、適宜調べて変更の事)

なお、バージョンアップ後、動作確認の上、不必要な旧mongodbのimageを削除しておく

Dockerfile修正 

現状のDockerfileをバックアップ取って、公式のGithubのDockerfileと入れ替える
Dockerfileやdocker-compose.ymlを大幅に変更していなければ、git pullやgit cloneでも構わない

4.3.xへアップグレード 

docker-compose stopでGrowiを停止後、

mongodbが4.4であり、Dockerfileが最新であることを確認し、growi関連のイメージファイルを全削除(weseek/growi:4だけで良いかも)

$ docker rmi weseek/growi:4

再構築し、起動

$ docker-compose up -d --build
...
Recreating growi_elasticsearch_1 ... error

Starting growi_mariadb_1         ... done
Starting growi_mongo_1           ... done
2b1e0073aa599ce405cb150a843cd26a50d7a428be4314c1
Recreating growi_hackmd_1        ... error

ERROR: for growi_hackmd_1  no such image: sha256:9e2f64420f8260b1f3ebb61883e990838e95758c1e09ac0682ab0f8a4359ffe6: No such image: sha256:9e2f64420f8260b1f3ebb61883e990838e95758c1e09ac0682ab0f8a4359ffe6

ERROR: for elasticsearch  no such image: sha256:e6e709e609d8bc902b1e0073aa599ce405cb150a843cd26a50d7a428be4314c1: No such image: sha256:e6e709e609d8bc902b1e0073aa599ce405cb150a843cd26a50d7a428be4314c1

ERROR: for hackmd  no such image: sha256:9e2f64420f8260b1f3ebb61883e990838e95758c1e09ac0682ab0f8a4359ffe6: No such image: sha256:9e2f64420f8260b1f3ebb61883e990838e95758c1e09ac0682ab0f8a4359ffe6
ERROR: The image for the service you're trying to recreate has been removed. If you continue, volume data could be lost. Consider backing up your data before continuing.

Continue with the new image? [yN]y
...
Successfully tagged growi_app:latest
growi_mariadb_1 is up-to-date
growi_mongo_1 is up-to-date
Recreating c591aa1f77f1_growi_elasticsearch_1 ... done
Recreating c2df05b864c2_growi_hackmd_1        ... done
Recreating growi_app_1                        ... done

イメージを全削除した影響か、hackmdやelasticsearchが再構築されたが無事起動できた


See also