TOMILOG

Dockerで動いているGhostをv2→v3にアップデートする

Dockerで動いているGhostをv2→v3にアップデートする
| 2020/04/18

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.とエラーがでた。

ghost-update-failed

解決方法

どうやら、rootユーザーには権限がないようだ。。。
/home ディレクトリを確認すると、nodeというユーザーが存在していた。

bash-4.4# ls /home/
node

nodeユーザーからアップデートするが失敗。

nodeユーザーでログインしてghost updateしてみる。

$ docker-compose exec --user node ghost ghost update

ghost-update-user-node

失敗。エラーを見てみると「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に変わったことが確認できました!
データがなくなることもなかったです。

ghost-update-completed

とみー
フリーランス ← フルスタックエンジニア ← Webデザイナー。2018年、長野県に移住しフルリモートで様々サービス開発に携わるフロントエンジニアとして活動中。開発で得た知見を発信していきます。