前回:DockerでPostgreSQLとOwnCloud
これはそろそろDockerを使えるようになりたい筆者の試行錯誤の軌跡です。
GhostブログをDockerコンテナへ移行
前回はPostgreSQLとOwnCloudをDockerコンテナに移行しました。
今回は、VMサーバー群のアプリケーションのうち、GhostブログをDockerコンテナに移行します。
コンテナの構成
docker-compose.ymlは以下のようにしました。
blog:
image: ghost:latest
restart: always
environment:
url: https://<ブログのURL>
mail__transport: SMTP
mail__options__host: smtp.zoho.com
mail__options__port: 465
mail__options__secureConnection: 'true'
mail__options__auth__user: <アカウントID(メールアドレス)>
mail__options__auth__pass: <パスワード>
mail__from: <配信メールの送信元アドレス>
volumes:
- /home/fclef/docker/server/blog/content:/var/lib/ghost/content
Ghost公式のイメージがあったのでそれを活用しました。
設定ファイルの設定値変更は環境変数を渡すだけです。
ZOHOで自ドメインメールを運用しているので、ZOHOのSMTPサーバー情報を設定しました。
記事等は、管理画面からエクスポート/インポートできますが、
コンテナで記事を永続化するには/var/lib/ghost/content
をバインドする必要があったので、
VMで運用していたときのcotent/
をコピーして来てバインドしました。
問題なく内容が引き継がれています。
リバースプロキシ
ghostイメージでは、http://localhost:2368
でブログを配信します。
ソケット化してコンテナ内にnginxを組み込んで配信してもよかったのですが、面倒だったのでそのままにしています。
リバースプロキシサーバの設定は普通です。
location / {
include /etc/nginx/params/proxy_params;
proxy_pass http://blog:2368;
}
今回の要は環境変数での設定値上書きでした。
PostgreSQLでもありましたが、こっちの方が複雑でできることが多そうです。
ただ順番にコンテナ化してるだけですが、いい感じにケーススタディできてる気がします。