1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DockerでGhost

Last updated at Posted at 2020-08-21

前回:DockerでPostgreSQLとOwnCloud
これはそろそろDockerを使えるようになりたい筆者の試行錯誤の軌跡です。

GhostブログをDockerコンテナへ移行

前回はPostgreSQLとOwnCloudをDockerコンテナに移行しました。
Untitled(8).png

今回は、VMサーバー群のアプリケーションのうち、GhostブログをDockerコンテナに移行します。
Untitled(9).png

コンテナの構成

docker-compose.ymlは以下のようにしました。

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を組み込んで配信してもよかったのですが、面倒だったのでそのままにしています。
リバースプロキシサーバの設定は普通です。

ブログ.conf抜粋
    location / {
    	include /etc/nginx/params/proxy_params;
        proxy_pass http://blog:2368;
    }

今回の要は環境変数での設定値上書きでした。
PostgreSQLでもありましたが、こっちの方が複雑でできることが多そうです。
ただ順番にコンテナ化してるだけですが、いい感じにケーススタディできてる気がします。

次回:EmbyをDockerで運用する

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?