はじめに
前回のアップデートと同様の手順でアップデートしていく。
環境
Windows 11 Professional
Docker Desktop 4.34.2 (167172)
Hugo 0.122.0
準備
以下の2点確認しておく必要がある
- アップデート内容の確認
- Netlifyの対応する
Hugo
バージョンの確認
Hugoの最新版
アップデート内容確認
Hugo
のサイトにあるnews
をみてアップデートで何が変わったのかを確認する。
下記サイトを確認し、 0.122.0
から0.131.0
の間に何が変化したのかをさらっと確認しておく。
https://gohugo.io/news/
NetlifyのHugoのバージョンを確認する
- Hugo on Netlify#Hugo version https://docs.netlify.com/integrations/frameworks/hugo/#hugo-version
https://docs.netlify.com/configure-builds/available-software-at-build-time/を見て、変わらずHugo
のバージョンはどれでも入れられるようなので最新を入れる。
手順
- ローカルで動かしている
Docker
での hugoコンテナでビルドするhugoのバージョンの変更 - コンテナを立ち上げて動作確認
- 問題なければ
netlify.toml
のバージョンを変更してデプロイする。
Dockerバージョンの変更
Docker/hugo/Dockerfile
を下記のように変更。
-FROM golang:1.22-alpine3.19 AS build
+FROM golang:1.23.1-alpine3.20 AS build
# https://github.com/gohugoio/hugo/releases
-ARG HUGO_VERSION=v0.122.0
+ARG HUGO_VERSION=v0.131.0
コンテナをビルドする。
docker compose build --no-cache
docker compose up -d
動作確認
http://localost:1313 を確認して問題ないかを確認する。
下記のようなログが出ている。
WARN deprecated: .Site.IsServer was deprecated in Hugo v0.120.0 and will be removed in a future release. Use hugo.IsServer instead.
この辺は直しておく。
.Site.IsServer was deprecatedの修正
-{{ if not .Site.IsServer }}
+{{ if not hugo.IsServer }}
として修正する。
netlify.tomlの修正
[context.production.environment]
-HUGO_VERSION = "0.122.0"
+HUGO_VERSION = "0.131.0"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"
...
[context.split1.environment]
-HUGO_VERSION = "0.122.0"
+HUGO_VERSION = "0.131.0"
HUGO_ENV = "production"
...
[context.deploy-preview.environment]
-HUGO_VERSION = "0.122.0"
+HUGO_VERSION = "0.131.0"
...
[context.branch-deploy.environment]
-HUGO_VERSION = "0.122.0"
+HUGO_VERSION = "0.131.0"
参考
Hugoの「.Site.IsServer」が非推奨になったのでテンプレート修正
https://stysk.com/posts/2024/07/10/hugo_deprecated_site_isserver/hugo.IsServer
https://gohugo.io/functions/hugo/isserver/
おわりに
Hugo
のバージョンを少し上げた。
最新版(v0.134.3
)まで一気に上げたら動かなくなったので少しずつ。