Hugo を Docker で動かす

Date: 2020/10/03
Tags: Hugo Docker

最近、可能な限り実行環境に Docker を使うようにしている。 久しぶりにブログを更新しようとしたら、Hugo をインストールしていなかったため、この機会に Docker で Hugo を動かすようにした。

Makefile の作成

docker-image は klakegg/hugo を使用した。 Hugo を利用するために必要な設定がされており、コマンド1つで Hugo の実行環境が出来上がる。

klakegg/hugo - Docker Hub

以下のような Makefile を作成し、繰り返し実行するコマンドを簡単に実行できるようにした。 make serve でローカルサーバを(http://localhost:1313)を立ち上げ、表示確認しながら編集するようにしている。

他にも、make shell でコンテナの中でコマンドを実行したり、make post で新規ページの作成をしたりできるようにした。

CURRNET_DIR := $(shell pwd)

# Hugo
HUGO_VER := 0.75.1
HUGO_IMG := klakegg/hugo:$(HUGO_VER)
HUGO_CMD := docker run --rm -it \
 -v $(CURRNET_DIR):/src \
 $(HUGO_IMG)

post:
 @year="$$(date +%Y)"; \
 month="$$(date +%m)"; \
 yyyymmdd="$$(date +%Y%m%d)"; \
 read -p "Please input title: " post; \
 $(HUGO_CMD) new posts/$${year}/$${month}/$${yyyymmdd}_$${post}.md

serve-test:
 $(HUGO_CMD) server -D

serve:
 $(HUGO_CMD) server

shell:
 $(HUGO_CMD)-alpine shell

これで、手軽に hugo の実行環境を用意できるようになった。 ブログの更新も程々にやっていきたい。