Ghost

Docker上でのGhost0.x系から1.5への不完全な更新

毎度ガバガバなイメージの更新をしています。毎回技術系のブログはunsweets.logに書こうかなあとかぼやきつつ、相変わらずしっかり書くつもりもないので、Ghostに関してはこちらに書いていこうと思います。今のところ。 さて、久々にブログを更新しようかなと思いデスクトップクライアントを起動したら、Ghostの更新がきてることに気が付きました。斜め読みして1が出たのか〜ふんふんと思ってよく見てみたら最新バージョンは1.5まで行ってました。まだ1.0.0が出てから23日ほどしか経ってないのにめちゃめちゃ早い。 例によってメジャーバージョンの変更ですので、Breaking changeと呼ばれる破壊的な変更があります。 今回のアップグレードではマウント先のパスが異なっており、うまくvolumes-fromオプションを使って移行することはできないようでした。 そもそも不完全とは ユーザーアカウントのインポートが完全ではなく、一部プロフィールデータが吹っ飛んだため。 手順 元のコンテナの設定画面から記事をExport。おそらくjsonデータがダウンロードされる docker pull ghostとかで最新版Ghostを取得する docker run時にマウントするボリュームを指定する。Docker hubにあるGhost

Ghost

Ghostを更新

元のバージョンがいくつだったかは忘れましたが、管理画面の上部に新しいバージョンが出たよ!というバーが3つほど表示されて邪魔だったのでいい加減更新しました。現在バージョン0.11.7。 ちなみに特に告知はしていませんでしたが、HTTPS化もしました。この記事にも書いてあるようにDocker上で動かしています。更新過程としては docker pull ghostで最新のGhostのイメージを取得 Dockerfileを書く(docker runでやるとnginx-proxy周りの環境変数設定が面倒くさいので…) docker buildで自分用の設定が入ったイメージを作成 docker runでコンテナ作成。この時--volumes-fromオプションを利用することで、古いコンテナからのデータを引き継げます のような感じで簡単に更新できました。未だにDockerを利用したベストな運用方法がわかっていませんが、こんな感じで良いんですかね…?ちなみに、初めてコンテナを起動した時はghostのディレクトリをホスト側にマウントして、configをいじって起動しました(やり方は忘れた)。 SSLにはdocker-letsencrypt-nginx-proxy-companionを利用しています。nginx-proxyと相性の良いものらしく、このイメージを起動させつつ、HTTPS化したいイメージにはLETSENCRYPT_

Ghost

Ghostのデスクトップアプリ

今まで全く存在に気付いていませんでしたが、ふとGhostのウェブサイトを見るとデスクトップアプリに目についたのでインストールしてみました。おそらくですが、実装はマルチプラットフォーム対応のデスクトップアプリケーションでよく見かけるElectron製で、外観はSlackによく似ており、左側のペインでブログを切り替えて書くことができます。管理画面自体はWebの画面をそのまま取ってきている気がするので、アプリを使用するほどかと言われると疑問ですが、ブログを書きたい!ってときにわざわざブラウザ開いて管理画面飛んで…の手間を考えると、このアプリを開いて即書けるのはいいように感じます。 話は変わりますが、このブログはVPSを利用してDocker上で動かしています。正確に言うとDocker上ではGhostとTwiTokenGetterを稼働させ、更にnginx-proxyでルーティングして稼働させています。このブログもいずれSSL化したいのですが、環境が環境なので自分の頭だけで解決できるのかと言われると自信はなく…。だからなんだという話ですが。 そういえばvaio proがそろそろ本気でヤバイ状態になってきました。まだなんとも言えないのですが、次のPC購入時にまた何か書こうと思います。早速抱負が崩壊しつつある…。