以前にも、Growiのアップグレードを記載しておりますが、今回は4.xから5.xへのメジャーアップグレードになります。
下記の構成で、dockにてGrowiが稼働しているものとする
App | Version |
---|---|
Growi | 4.5.19 |
mongodb | 4.4 |
なお、初めてdockerで構築する場合は、公式のインストール通りで構築出来るので以降の作業は不要となります
4.xを最新にしておこう
もし、dockerで稼働しているのであれば、下記公式のアップグレード情報を基になるべく4.xを最新バージョンへアップデートしておいた方が良いかと思います。
執筆現在はv4.5.19
アップグレード作業
アップグレード前に、必ずmongodbやアーカイブのバックアップを取っておきましょう
また、重要な変更点が多いので、公式の記事を一読しておきましょう
Growi停止
docker-compose down
しないように注意!
$ docker-compose stop
コンテナとElasticsearchボリューム削除
$ docker-compose rm app
Going to remove growi-app-1 (y/N) y
$ docker-compose rm elasticsearch
Going to remove growi-elasticsearch-1 (y/N) y
Elasticsearch コンテナから 利用していた docker volume を削除
$ docker volume ls|grep es_data
local growi_es_data
$ docker volume rm growi_es_data
イメージ削除
イメージID(07d ded 5e3)は自分の環境に合わせて変更してください
$ docker images|grep growi
growi_app latest 07d9d010ddc1 25 minutes ago 781MB
weseek/growi 4 dedb45121a0e 10 days ago 753MB
growi_elasticsearch latest 5e32778e509f 4 months ago 981MB
$ docker rmi 07d ded 5e3
リポジトリ更新
編集したファイルがあれば、バックアップを取っておきましょう
$ pwd
/growi
$ cp docker-compose.yml docker-compose.yml.bak
$ git pull
私の場合、docker-compose.ymlとelasticsearch/Dockerfileに変更があったため、下記の作業が必要でした
$ git pull
-
Please commit your changes or stash them before you merge
$ git checkout docker-compose.yml
$ git checkout elasticsearch/Dockerfile
$ git pull origin master
docker-compose.yml編集
git pull
したdocker-compose.ymlは初期値に戻っているので、バックアップを取ったdocker-compose.yml.bakと比較しながら、編集します
私の場合のDiff
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -6,7 +6,7 @@ services:
context: .
dockerfile: ./Dockerfile
ports:
- - 127.0.0.1:3000:3000 # localhost only by default
+ - 3000:3000 # localhost only by default
links:
- mongo:mongo
- elasticsearch:elasticsearch
@@ -16,15 +16,20 @@ services:
environment:
- MONGO_URI=mongodb://mongo:27017/growi
- ELASTICSEARCH_URI=http://elasticsearch:9200/growi
- - PASSWORD_SEED=changeme
+ - PASSWORD_SEED=ae9xxxxxxxxxxxxxxxxxxxxxxx
# - FILE_UPLOAD=local # activate this line if you use local storage of server rather than AWS
+ - FILE_UPLOAD=aws # activate this line if you use local storage of server rather than AWS
もし、docker-compose.yml以外にも変更しているファイルがあれば、適宜、編集しましょう
ビルド
$ docker-compose build
Successfully built
が表示され成功を確認
起動
$ docker-compose up -d
これで、今まで通り接続し、ログイン出来れば完了です
v5互換形式へページ変換
Growiへ管理者でログインすると、下記の警告が表示されるかと思います
このまま、変換リンクを押したいところですが、メンテナンスモードにしないと失敗します
左項目のアプリ設定
をクリックし、右項目の最下行のメンテナンスモードを開始します
その後、v5互換形式へ変換を開始します
変換が無事完了したら、メンテナンスモードを終了しておきましょう
今回のv5へのアップグレードでは、パーマリンクが変更になったため、戸惑いましたが、自分だけのWikiだと、それほど問題ではないので、アップグレードに踏み切ったのですが、職場や仲間・サークルで運用していた場合は、しっかりと検討する必要がありそうです
アップグレードした感想としては、大半のOSSやアプリではアップグレードする度にメモリ消費が多くなったり、重くなって快適さが損なわれる場合が多いのですが、Growi v5.xでは、elasticsearchが7へ上がったこともあり、検索速度の向上や全体的な速度向上が実感でき、より快適になったのではないかと思います