【Hugo】Docker上でHugo環境を構築する【Compose Watch】

【Hugo】Docker上でHugo環境を構築する【Compose Watch】

今回は、Hugo環境をDocker上で構築・実行する手順についてまとめました。

目次

DockerでHugo環境を構築する

Dockerを使うことで、hugo.exeのダウンロードや環境変数の設定をしなくてもHugoを動かせます(Dockerの環境構築については割愛します)。

ブログ用フォルダ内でDockerfiledocker-compose.ymlを配置します。ホットリロード機能を実現するためにCompose Watchを利用しています。

Dockerfile
1FROM hugomods/hugo:latest
2
3COPY . /src/
4
5EXPOSE 1313
6
7ENTRYPOINT ["hugo", "server", "--bind", "0.0.0.0", "--port", "1313", "-D", "-F"]
compose.yml
 1version: '3'
 2
 3services:
 4  hugo:
 5    build: .
 6    ports:
 7      - "1313:1313"
 8    develop:
 9      watch:
10        - action: sync
11          path: .
12          target: /src

コンテナ起動時は、ターミナルで以下のコマンドを実行します。

ターミナル
1$ docker compose up -d # コンテナ起動・ローカルでビルド
2
3$ docker compose watch # ホットリロード

ローカルでの構築時と同様に、http://localhost:1313/を開くことでサイトプレビューを確認できます。

新規記事を作成する際は以下のコマンドを実行します。

ターミナル
1$ docker compose exec hugo hugo new <file> # コンテナ内に新規ファイル作成
2
3$ docker compose cp hugo:/src/content/<file> . # コンテナからローカルにコピー

今回は、Dockerでブログを構築する方法について紹介しました。ローカルにはブログのソースのみ置けば良いというのがDockerの利点ですね。以上で記事を終わりにします。

参考文献

関連記事