Docker で jekyll
このページの下書きを手元で見る時に、以前は Mac 上で jekyll を動かしていたけれど、最近は Docker 上で動かしている。参考までに設定をまとめておく。
Docker イメージは jekyll もあるようだけれど、個人管理のものだけでオフィシャルイメージはないようなので、ruby のオフィシャルイメージを使っている。jekyll が動けばいいので軽量の alpine を使い、このような Dockerfile としている。
entrypoint.sh はこのファイル
さらに、このような Makefileを作っている。冒頭の repo 変数はレポジトリのローカルパスを入れる。make open
で Docker が起動していなければ起動して(Mac 限定)、make install
でコンテナを作り make start
で localhost にサーバーを起動する。ここで、make start
だけで Docker の起動から一連の処理をしてサーバーが起動される。make stop
でサーバーが停止して、make sh
でシェルに入り、make root
でルートのシェルに入り、make update
で alpine パッケージと gem をアップデートして、make clean
でコンテナを消去して、make reinstall
でコンテナを再インストールする。Ruby や alpine の新しいバージョンのイメージがあれば、これで最新になる。
このような Makefile と Dockerfile の組を使うシステムごとに作成している。さらには、ディレクトリに入るのも面倒なので、起動と停止のためのシェルスクリプトを作っている。
Mac 上で直接 jekyll を動かしていた時と比べると、うまく動かなくて困ることがなくなった。