Strapi を開発環境と本番環境のDockerで動かしたい【その9】- Strapi のアップデート
今回は開発環境と本番環境の Strapi のバージョンアップデートを行います。
前回まではコチラ👇
Strapi のバージョンの確認
Strapi の新しいバージョンがあるかどうかは管理画面から確認することができます。
開発環境で確認してみます。
# 作業ディレクトリに移動する
$ cd ~/StrapiProjects/donuts-strapi
# イメージの作成
$ docker compose -f docker-compose.dev.yml build
# コンテナの起動
$ docker compose -f docker-compose.dev.yml up
http://localhost:1337/admin/settings/application-infos を開きます。
メニューのSettings
に1
のバッジがついている場合に新しいバージョンにあげることができます。
現在のバージョンを確認するとv4.3.8
であることがわかります。
Upgrade your admin panel
を選択すると最新のリリースをみることができます。
リリース情報に、Update and Migration Guidesがあるので、そちらを参考にアップデートしてきます。
バージョンをアップデートする
公式のドキュメントを参考にバージョンをアップデートします。
先ほど確認した手順で、現在のバージョンを確認します。
現在のバージョンはv4.3.8
です。
次にアップデート後のバージョンを確認します。最新リリースがv4.4.3
なのでそちらにアップデートしていきます。
ファイルを編集するので、開発環境が稼働中であれば止めておきます。
# 作業ディレクトリに移動する
$ cd ~/StrapiProjects/donuts-strapi
# コンテナを止める
$ docker compose -f docker-compose.dev.yml down
# 使用していない Docker オブジェクトを削除する
$ docker system prune -f
package.json
の Strapi バージョンを変更します。
# 作業ディレクトリに移動する
$ cd ~/StrapiProjects/donuts-strapi
# この中にある package.json を編集
$ ls
README.md docker-compose.dev.yml src
config favicon.ico stg.Dockerfile
data node_modules tsconfig.json
database package.json yarn.lock
dev.Dockerfile prod.Dockerfile
dist public
{
"name": "donuts-strapi",
"private": true,
"version": "0.1.0",
"description": "A Strapi application",
"scripts": {
"develop": "strapi develop",
"start": "strapi start",
"build": "strapi build",
"strapi": "strapi"
},
"devDependencies": {},
"dependencies": {
"@strapi/plugin-documentation": "^4.4.1", # ここを書き換える
"@strapi/plugin-i18n": "4.3.8", # ここを書き換える
"@strapi/plugin-users-permissions": "4.3.8", # ここを書き換える
"@strapi/strapi": "4.3.8", # ここを書き換える
"@webbio/strapi-plugin-scheduler": "^0.1.2",
"pg": "^8.8.0"
},
"author": {
"name": "A Strapi developer"
},
"strapi": {
"uuid": "d0fbc2ca-91a3-46ff-87aa-7554b89a9db7"
},
"engines": {
"node": ">=14.19.1 <=16.x.x",
"npm": ">=6.0.0"
},
"license": "MIT"
}
"@strapi/strapi": "4.3.8"
を"@strapi/strapi": "4.4.3"
に書き換えます。
また、以下のメモの通り、"@strapi/plugin-documentation"
と"@strapi/plugin-i18n": "4.3.8"
と"@strapi/plugin-users-permissions"
も変更します。
"@strapi/strapi": "4.3.8"
を"@strapi/strapi": "4.4.3"
に書き換えただけでは以降のSTEP.5でエラーが出てしまいました。
...
donuts-strapi | [2022-10-08 16:44:02.550] debug: ⛔️ Server wasn't able to start properly.
donuts-strapi | [2022-10-08 16:44:02.553] error: Cannot read properties of undefined (reading 'register')
donuts-strapi | TypeError: Cannot read properties of undefined (reading 'register')
donuts-strapi | at Object.registerI18nPermissionsHandlers (/opt/node_modules/@strapi/plugin-i18n/server/services/permissions/engine.js:57:39)
...
@strapi
関係のライブラリも同時にアップデートする必要があるようです。
各ライブラリの最新バージョンは npm で確認できます。
@strapi/plugin-documentation
@strapi/plugin-i18n
@strapi/plugin-users-permissions
変更後は以下の通りです。
再度開発環境のコンテナを起動します。
# 作業ディレクトリに移動する
$ cd ~/StrapiProjects/donuts-strapi
# イメージの作成
$ docker compose -f docker-compose.dev.yml build
# コンテナの起動
$ docker compose -f docker-compose.dev.yml up
http://localhost:1337/admin/settings/application-infos にアクセスして確認してみます。
v4.4.3
と表示され、Upgrade your admin panel
の文字が消えていることが確認できました。
最後にVPSにデプロイします。
Strapi を開発環境と本番環境のDockerで動かしたい【その4】の記事にてワークフローを設定しているので、GitHub にプッシュするだけでデプロイができます。
今回はステージング環境にデプロイします。
# 作業ディレクトリに移動する
$ cd ~/StrapiProjects/donuts-strapi
# package.json をコミットする
$ git add package.json
$ git commit -m "Update strapi version to 4.4.3"
# staging ブランチにプッシュする
$ git push origin staging
これでワークフローが完了するのを待ちます。
VPS環境でv4.4.3
表記になっていることが確認できればStrapi バージョンのアップデート完了です。
おわりに
今回で「Strapi を開発環境と本番環境のDockerで動かしたい」のシリーズは終わりにしようと思います。
今回のシリーズを通して、VPS + Strapi 環境をいつでも用意できるようになりました。
今後のシリーズはしばらくお休み予定ですが、以前の Next.js と組み合わせて Strapi を利用する方法についてもいずれ書きたいと思っています。