@jyane

Jekyll を Docker でやる

GitHub Blog のこの記事を読んで,やっぱり GitHub Pages にページをホスティングさせるなら,Jekyll が簡単なんじゃないかと思った. Hugo で生成して Travis とかで自動デプロイとかがモダンかもしれないけど,GitHub Pages は Jekyll を使っていれば自動で生成してデプロイしてくれるので,そこまで遠回りしなくても良いのではと思う. 記事をたくさん書くとファイル生成時間に耐えられなくなるのかもしれない?

Jekyll を Docker で動かして,GitHub Pages にデプロイしてる日本語記事はなかったので,記録しておきます.

Jekyll を Docker で動かす

Jekyll は公式で Docker 化されているので,環境の闇に嵌まらないので良い.さらに,最初から Gem が結構入っているので,リビルドなどもあまり必要ないかな?

https://github.com/jekyll/docker

ページに使い方としてコマンドが載っているが,自分の環境は docker-machine を使っていて若干違ったので,

$ docker run --rm --label=jekyll --volume=$(pwd):/srv/jekyll \
  -it -p 4000:4000 jekyll/jekyll:pages

を実行.これでイメージのダウンロードから実行まで一気に行けます. 要は,このコマンドの後に実行させたいコマンドを付けると Jekyll で色々できるようになります.

ページの生成

最初にテンプレートファイルやらを生成して欲しいので,

$ docker run --rm --label=jekyll --volume=$(pwd):/srv/jekyll \
  -it -p 4000:4000 jekyll/jekyll:pages jekyll new yourblog

など実行してファイルを生成します.

ページの確認

自分でごりごり編集して結果を確認したいので,jekyll serve --watchを使う.

$ docker run --rm --label=jekyll --volume=$(pwd):/srv/jekyll \
  -it -p 4000:4000 jekyll/jekyll:pages jekyll serve --watch --force_polling

OSX 環境だと--force_pollingがないとファイルを変更しても反映されないので注意. ブラウザで確認する時は,

$ docker-machine ip <your-machine-name>

で IP を確認して http://IP:4000/ で確認.

これでファイルを変更するとページが書き換わります:smile:

このエントリーをはてなブックマークに追加