Dockerで動いているGhostをv2→v3にアップデートする
Docker上で動いているGhostのアップデートをしようとしたら、エラーが出たので解決方法をお伝えします。
結論からいうと、
$ docker pull ghost:3-alipine
$ docker-compose up -d
で解決できました。
Ghostのバージョン3がでていたので、v2.15からv3にアップデートを試みる。
Ghostのアップデート方法は公式に載っている。
バックアップをとって、ghost update
すれば良いようです。
発生したエラー
さっそくアップデートしようとしたら、You can't run commands as the 'root' user.
とエラーがでた。
解決方法
どうやら、rootユーザーには権限がないようだ。。。/home
ディレクトリを確認すると、node
というユーザーが存在していた。
bash-4.4# ls /home/
node
nodeユーザーからアップデートするが失敗。
nodeユーザーでログインしてghost update
してみる。
$ docker-compose exec --user node ghost ghost update
失敗。エラーを見てみると「v2.0にアップグレードしようとしてるけど、あんたv1.0じゃないよ」って言われている。
いや、、v3.0にアップグレードしたいんですが。。
何が問題かというとGhost CLIのバージョンが古かったために、v3.0に対応していなかった。
Ghost CLIをアップグレードして、ghost update
しても良いのですが、Dockerのイメージをv3.0のものにした方がラクなのでそちらの方法を紹介します。
Docker上のGhostの正しいアップデート方法
Dockerイメージファイルをダウンロード
$ docker pull ghost:3-alpine
docker-composeのimageのバージョンを変更
version: "3"
services:
ghost:
restart: always
image: ghost:3-alpine
コンテナ生成
$ docker-compose up -d
バージョン確認
[root@v133-18-171-226 ghost.blog]# docker-compose exec ghost ghost version
Ghost-CLI version: 1.13.1
Ghost version: 3.13.3 (at /var/lib/ghost)
管理画面もv3.0のUIに変わったことが確認できました!
データがなくなることもなかったです。