Jekyll環境をDockerで構築したよ
※このサイトはJekyllで生成しているのですが、作成した記事のプレビューを見るにはRubyが必要なので少し厄介です
PCを初期化したり買い換える度にrbenv入れて〜とかやるのは少しだるい
環境を汚すのはあまり好きじゃないのでDockerを使って環境を作ることにしました
DockerでJekyllを使う方法なんてググればいくらでも前例が出てくるんですけど、折角なので自己流の手順を書いていきます
※とか言った側からHugoに手を出してしまい、Jekyllを置き換えてしまった…でも記事は残しておきます
下準備
今回はdocker-composeコマンドを使用します
GUI版Docker(Docker Desktop)を導入していれば、特に追加で入れるものはありません
CLI版のdockerの場合はdocker-composeを別で導入する必要があるので、その辺りは調べてみてください
MacとWindowsはGUI版が存在するので大体の人は大丈夫だと思います
構成
your.domain.comより下がGitHubのリポジトリに格納する対象部分です
work_dir/
├─ docker-compose.yml
├─ your.domain.com/
│ ├─ 404.md
│ ├─ index.md
│ └─ etc...
└─ run.sh
docker-compose.yml作成
Dockerの設定ファイルを作成
version: '3'
services:
jekyll:
image: jekyll/jekyll
volumes:
- ./your.domain.com:/your.domain.com
working_dir: /your.domain.com
command: jekyll s
ports:
- "14000:4000"
images
- 元となるイメージファイルを指定する
- 公式でJekyllのものがあるので流用 https://hub.docker.com/r/jekyll/jekyll/
volumes
- マウントする領域のパスを指定
- ホストマシンのパス:Dockerコンテナのパス 形式で指定
working_dir
- コンテナでのカレントディレクトリ
command
- コンテナが起動した際に実行するコマンド
- 自動的にJekyllのプレビュー機能が使えるよう指定しました
- この欄を削ると自動では起動しなくなるので、その場合はDocker Desktopで起動中のコンテナからCLIを選択し、コマンドを打ち込む必要があります
ports
- ホストマシンのポート:コンテナのポート 形式で指定
jekyll s
した際にデフォルトでは4000番ポートを使用してサーバが立ち上がるようなので、コンテナ側は4000を指定- ホスト側は好きなポートで。とりあえず今回は14000
実行用ファイル作成
docker-composeのコマンドって何か忘れやすいのでシェルスクリプトとしてメモっておきます…
docker-compose up --build
内容はこの一行だけ
起動
ターミナルやPowerShellでrun.shを実行すれば後は勝手に処理が進みます
cd work_dir
./run.sh
ブラウザを立ち上げてlocalhost:14000にアクセスすればサイトのプレビューが確認できます
以上のファイルをiCloudにバックアップ
これでいつでも環境が簡単に復元できるってわけ
去年までDockerのDの字も知らなかったけど使えば使うほど便利だな〜と…
最近は仕事でDockerばっかり触っているので、事ある毎にDockerの使い道を考えています。公私混同。さいあく