はじめに
以前作成した記事のHugoブログをDockerで構築するでは、DockerHubのイメージ(klakegg/hugo)を使用して構築した。
しかし、最新のHugoのバージョンには対応しておらずどうしたものかと思ったので自前でDockerfileを用意して構築することにした。
環境
Server: Docker Desktop 4.27.1 (136059)
Docker version 25.0.2
Docker Compose version v2.24.3-desktop.1
手順
- ブログで使用しているプロジェクトの直下に、
Docker/hugo/Dockerfile
を作成する。 compose.yml
を修正する。Makefile
を修正し、エイリアスを定義する。- コンテナを立ち上げる。
Dockerfileの作成
FROM alpine:3.19.1
# https://github.com/gohugoio/hugo/releases
ARG HUGO_VERSION=v0.111.3
# https://gohugo.io/installation/linux/
RUN apk add --update --no-cache go g++
RUN CGO_ENABLED=1 go install -tags extended github.com/gohugoio/hugo@${HUGO_VERSION}
ENV PATH="/root/go/bin:${PATH}"
WORKDIR /src
EXPOSE 1313
ENTRYPOINT [ "hugo", "server", "--bind", "0.0.0.0", "--port", "1313"]
とした。
最低限のコマンドでインストールしたかったので go
, g++
のみとし、go install
でhugo
を入れた。
compose.ymlの修正
# https://gohugo.io/installation/linux/#docker
services:
hugo:
build:
context: ./Docker/hugo
volumes:
- .:/src
ports:
- "1313:1313"
Makefileの修正
build:
docker compose build
up :
docker compose up -d
serve:
make up
docker compose exec hugo hugo server -D
#Usage: make new file=post/tech/tips/aaa.md
new:
make up
docker compose exec hugo hugo new $(file)
sh:
make up
docker compose exec hugo sh
.PHONY: build up serve new
とした。
コンテナ立ち上げ
make up
コンテナを立ち上げる。
コンテナ立ち上げ後に localhost:1313にアクセスする。
接続できていればOK
参考
Install Hugo on Linux.
https://gohugo.io/installation/linux/#dockerChatGPT
https://chat.openai.com/–appendPort false doesn’t work. –appendPort=false does. Str #11482
https://github.com/gohugoio/hugo/issues/11482Hugo について
https://hassiweb.gitlab.io/memo/docs/memo/GitLab/Pages/hugo/DockerコンテナでPATHを追加する
https://zenn.dev/dqneo/articles/819c5f7bc5d268
おわりに
これで最新のバージョンが使用できるのでバージョンアップをしていきたい。
とはいえ、Netlify
が対応しているかどうかも調べておかないといけない。