Razl-Dazl

eyecatch

Jekyll環境をDockerで構築したよ

Posted at — 2021-12-09

※このサイトは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

  • 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の使い道を考えています。公私混同。さいあく

Author@zakuro

Mastodon: 396@vivaldi.net