Dockerを利用してブログプラットフォームGhostを試す
Ghostとは?
シンプルでありがなら必要な機能が十分に揃っているブログプラットフォームです。
node.js製で、Ember.jsとhandlebars.jsを利用しています。WordPressほどのCMSとしての機能は揃っていないようだが、ブログ用途であればマークダウンやタグ管理などが付いているなど十分な印象。
手順
Dockerのインストール
CentOS6.xだとコンテナがうまく起動できなかったので(Docker1.8以上からCentOS7.x以上からサポートに変更)7.1の環境で実施
- 環境: CentOS 7.1 64bit
rootユーザでログインし、既存のyumパッケージをアップデートする
$ yum update
yumリポジトリの追加
$ tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
Dockerパッケージのインストール
$ yum install docker-engine
Dockerデーモンの起動と自動起動設定
$ service docker start
$ chkconfig docker on
テスト
以下で起動ができたら問題なし
$ docker run hello-world
Ghostのインストール
DockerHubでGhostと打てば出てくるghostを利用してコンテナを作成する
イメージの取得
$ docker pull ghost
コンテナを作成して起動する
例としてコンテナの名前をblog-ghostとし、80番でアクセスできるように2368ポート(ghostのデフォルト)とマッピング、コンテナで利用するデータボリュームを/usr/local/ghost
とする
$ docker run -d -p 80:2368 --name blog-ghost -v /usr/local/ghost:/var/lib/ghost ghost
アクセスして確認
http://<IP or domain>
にアクセスして確認。
アカウント作成
http://<IP or domain>/ghost/signin/
にアクセスして案内に沿ってユーザを登録する
ghostの設定
一部設定を修正しないとリンク先がlocalhostを向いてしまったりするので以下手順で設定する。起動後、指定したデータボリューム配下に以下のように展開されている。
- apps/
|- README.md
- data/
|- README.md
|- ghost-dev.db
- images/
|- README.md
- themes/
|- casper/
|- LICENSE
|- README.md
|- assets/
|- css/
|- screen.css
|- fonts/
|- casper-icons.eot
|- asper-icons.svg
|- asper-icons.ttf
|- asper-icons.woff
|- js/
|- index.js
|- jquery.fitvids.js
|- author.hbs
|- default.hbs
|- index.hbs
|- package.json
|- page.hbs
|- partials/
|- loop.hbs
|- navigation.hbs
|- post.hbs
|- tag.hbs
- config.js
urlを変更
とりあえずはconfig.jsに記載されているJSONの中にあるurlを書き換えるだけでOK。メンバーの追加とかを行いたい場合はSMTPの設定などを追加する必要があります。
$ vim /usr/local/ghost
url: 'http://<your ip or domain>',
設定を反映させる
コンテナを再起動して完了