環境説明
このサイトの核はHugoという静的サイトジェネレーターを使ってます。
そしてこのブログを公開する場所はNetlifyというホスティングサービスを使ってます。
自分のパソコンから一度Githubに記事データをアップロードすると、
NetlifyがGithubにあるページの更新を見ており、更新されるとNetlify内でBuildして
静的サイトを生成し、自動で公開してくれるという仕組みで運用してました。
問題発生
ただ、先月のあるタイミングからうまくBuildが成功せず、
ブログを更新できない事象が発生していたのですが、
本業の社内SE業務がパンクしていて帰ってきてから脳が働いてませんでした(汗
さすがに更新してないと自分の気持ちも落ち着かないので暫定対応をすることにしました。
(SIer的発想)
問題の切り分け
自分のパソコンでBuildしてlocalhostで立ち上げしているデモサイトは大丈夫でした。
Githubにアップロードする行為も特に問題は起きていませんでした。
NetlifyがGithubのアップロードを監視してますが、連携は問題なさそうです。
エラーログを見るとHugoに導入しているThemeでエラーが発生しているように見えます。
このテーマは自分のリポジトリにforkして切り分けているんですが、
直近数ヶ月は変更していないため、なぜエラーになっているのか不明です。
このテーマを作成者のリポジトリから持ってきて最新版を試しに動かしてみてましたが
localhostでは問題なく動いたのにNetlifyでエラーになります。
もっと深掘りして真相究明したいんですが、
時間も労力もないので調査を一旦切り上げました。
暫定対応
そこで、Netlify側の自動BuildをOffにして、パソコンでBuildしたサイトデータ一式を
Netlifyにアップロードして公開する方式に変更することにしました。
やり方は調べてみたところ難しくはなさそうだったので残しておきます。
1.Netlifyの「Deploys」>「Build settings」項目に移動し、
「Build command」に「hugo」というコマンドを記載していましたが消してSaveしました。
2.Githubにデータをアップロードする際に、hugoでBuildした「public」というフォルダを
アップロードしない設定にしていましたが、それを許可するようにします。
具体的にはローカルフォルダ内の「.gitignore」に
public/*
と書いていましたが、# public/*
と変更します。
3.Githubにpublicごとアップロードします。
4.Netlifyを見ると、アップロードしたファイルを見に行っていることがわかります。
5.Publishedにならないと反映されないので、
「Deploys」の上段に「Start Auto publishing」を押して自動で最新を見に行くようにする。
→「Stop auto publishing」になっていれば自動で更新しているということで問題ないです。
6.最後に「Published」と青文字で書かれていれば無事に公開されます。
とりあえず解決だが…
なんとかこの記事も含めてブログを再開できました。
何でもかんでも自動化すれば楽にはなりますが、
異常が発生した時にきちんと細かい仕様を理解していないと
大変な目に遭うことを経験することができました。
やっぱり自分が使うものに関してはきちんと理解しておいた方がいいですね。
自分がゼロから作るつもりで理解するのが一番吸収力高まると思いますね。
備忘録:エラー内容
根本解決していませんが、
後から何かに使えるかと思ったのでログをメモしておきたいと思います。
初期のエラーメッセージはこんな感じでした。
10:38:24 PM: Build ready to start
10:38:25 PM: build-image version: 53b83b6bede2920f236b25b6f5a95334320dc849
10:38:25 PM: build-image tag: v3.6.0
10:38:25 PM: buildbot version: f66121aa8b7df3f09ef4ca9f2f1aa9cddabd6c71
10:38:25 PM: Fetching cached dependencies
10:38:25 PM: Failed to fetch cache, continuing with build
10:38:25 PM: Starting to prepare the repo for build
10:38:26 PM: No cached dependencies found. Cloning fresh repo
10:38:26 PM: git clone https://github.com/kentarotakahashi1/TakakenTechLabo
10:38:53 PM: Preparing Git Reference refs/heads/master
10:38:55 PM: Starting build script
10:38:55 PM: Installing dependencies
10:38:55 PM: Python version set to 2.7
10:38:56 PM: Downloading and installing node v10.23.0...
10:38:56 PM: Downloading https://nodejs.org/dist/v10.23.0/node-v10.23.0-linux-x64.tar.xz...
10:38:57 PM: Computing checksum with sha256sum
10:38:57 PM: Checksums matched!
10:38:59 PM: Now using node v10.23.0 (npm v6.14.8)
10:38:59 PM: Started restoring cached build plugins
10:38:59 PM: Finished restoring cached build plugins
10:38:59 PM: Attempting ruby version 2.6.2, read from environment
10:39:01 PM: Using ruby version 2.6.2
10:39:01 PM: Using PHP version 5.6
10:39:01 PM: Installing Hugo 0.79.0
10:39:03 PM: Hugo Static Site Generator v0.79.0-1415EFDC/extended linux/amd64 BuildDate: 2020-11-27T09:16:17Z
10:39:03 PM: Started restoring cached go cache
10:39:03 PM: Finished restoring cached go cache
10:39:03 PM: Installing Go version 1.12
10:39:08 PM: unset GOOS;
10:39:08 PM: unset GOARCH;
10:39:08 PM: export GOROOT='/opt/buildhome/.gimme_cache/versions/go1.12.linux.amd64';
10:39:08 PM: export PATH="/opt/buildhome/.gimme_cache/versions/go1.12.linux.amd64/bin:${PATH}";
10:39:08 PM: go version >&2;
10:39:08 PM: export GIMME_ENV="/opt/buildhome/.gimme_cache/env/go1.12.linux.amd64.env"
10:39:08 PM: go version go1.12 linux/amd64
10:39:08 PM: Installing missing commands
10:39:08 PM: Verify run directory
10:39:10 PM:
10:39:10 PM: ────────────────────────────────────────────────────────────────
10:39:10 PM: Netlify Build
10:39:10 PM: ────────────────────────────────────────────────────────────────
10:39:10 PM:
10:39:10 PM: ❯ Version
10:39:10 PM: @netlify/build 6.0.0
10:39:10 PM:
10:39:10 PM: ❯ Flags
10:39:10 PM: deployId: 5fd0d3500f7bd6066ba02e84
10:39:10 PM: mode: buildbot
10:39:10 PM:
10:39:10 PM: ❯ Current directory
10:39:10 PM: /opt/build/repo
10:39:10 PM:
10:39:10 PM: ❯ Config file
10:39:10 PM: No config file was defined: using default values.
10:39:10 PM:
10:39:10 PM: ❯ Context
10:39:10 PM: production
10:39:10 PM:
10:39:10 PM: ────────────────────────────────────────────────────────────────
10:39:10 PM: 1. Build command from Netlify app
10:39:10 PM: ────────────────────────────────────────────────────────────────
10:39:10 PM:
10:39:10 PM: $ hugo
10:39:10 PM: Total in 0 ms
10:39:10 PM: Error: module "hugo_theme_robust" not found; either add it as a Hugo Module or store it in "/opt/build/repo/themes".: module does not exist
10:39:10 PM:
10:39:10 PM: ────────────────────────────────────────────────────────────────
10:39:10 PM: "build.command" failed
10:39:10 PM: ────────────────────────────────────────────────────────────────
10:39:10 PM:
10:39:10 PM: Error message
10:39:10 PM: Command failed with exit code 255: hugo
10:39:10 PM:
10:39:10 PM: Error location
10:39:10 PM: In Build command from Netlify app:
10:39:10 PM: hugo
10:39:10 PM:
10:39:10 PM: Resolved config
10:39:10 PM: build:
10:39:10 PM: command: hugo
10:39:10 PM: commandOrigin: ui
10:39:10 PM: environment:
10:39:10 PM: - HUGO_VERSION
10:39:10 PM: - TZ
10:39:10 PM: publish: /opt/build/repo/public
10:39:10 PM: Caching artifacts
10:39:10 PM: Started saving build plugins
10:39:10 PM: Finished saving build plugins
10:39:10 PM: Started saving pip cache
10:39:10 PM: Finished saving pip cache
10:39:10 PM: Started saving emacs cask dependencies
10:39:10 PM: Finished saving emacs cask dependencies
10:39:10 PM: Started saving maven dependencies
10:39:10 PM: Finished saving maven dependencies
10:39:10 PM: Started saving boot dependencies
10:39:10 PM: Finished saving boot dependencies
10:39:10 PM: Started saving rust rustup cache
10:39:10 PM: Finished saving rust rustup cache
10:39:10 PM: Started saving rust cargo bin cache
10:39:10 PM: Finished saving rust cargo bin cache
10:39:10 PM: Started saving go dependencies
10:39:12 PM: Finished saving go dependencies
10:39:15 PM: Build failed due to a user error: Build script returned non-zero exit code: 2
10:39:15 PM: Failing build: Failed to build site
10:39:15 PM: Failed during stage 'building site': Build script returned non-zero exit code: 2
10:39:15 PM: Finished processing build request in 49.935039094s
Error: module "hugo_theme_robust" not found
とあったので
使ってるThemeが悪いのかなと思ってカスタマイズした箇所を弄ってましたが
別のエラーになってしまいました。
10:20:01 PM: Build ready to start
10:20:03 PM: build-image version: 53b83b6bede2920f236b25b6f5a95334320dc849
10:20:03 PM: build-image tag: v3.6.0
10:20:03 PM: buildbot version: 94ed42511c4e70547a960237db686b74875fef2d
10:20:03 PM: Fetching cached dependencies
10:20:03 PM: Failed to fetch cache, continuing with build
10:20:03 PM: Starting to prepare the repo for build
10:20:04 PM: No cached dependencies found. Cloning fresh repo
10:20:04 PM: git clone https://github.com/kentarotakahashi1/TakakenTechLabo
10:20:27 PM: Preparing Git Reference refs/heads/master
10:20:29 PM: Starting build script
10:20:29 PM: Installing dependencies
10:20:29 PM: Python version set to 2.7
10:20:30 PM: Downloading and installing node v10.23.0...
10:20:30 PM: Downloading https://nodejs.org/dist/v10.23.0/node-v10.23.0-linux-x64.tar.xz...
10:20:31 PM: Computing checksum with sha256sum
10:20:31 PM: Checksums matched!
10:20:33 PM: Now using node v10.23.0 (npm v6.14.8)
10:20:33 PM: Started restoring cached build plugins
10:20:33 PM: Finished restoring cached build plugins
10:20:33 PM: Attempting ruby version 2.6.2, read from environment
10:20:34 PM: Using ruby version 2.6.2
10:20:34 PM: Using PHP version 5.6
10:20:34 PM: Installing Hugo 0.63.2
10:20:36 PM: Hugo Static Site Generator v0.63.2-934EE21F/extended linux/amd64 BuildDate: 2020-01-27T12:20:42Z
10:20:36 PM: Started restoring cached go cache
10:20:36 PM: Finished restoring cached go cache
10:20:36 PM: Installing Go version 1.12
10:20:40 PM: unset GOOS;
10:20:40 PM: unset GOARCH;
10:20:40 PM: export GOROOT='/opt/buildhome/.gimme_cache/versions/go1.12.linux.amd64';
10:20:40 PM: export PATH="/opt/buildhome/.gimme_cache/versions/go1.12.linux.amd64/bin:${PATH}";
10:20:40 PM: go version >&2;
10:20:40 PM: export GIMME_ENV="/opt/buildhome/.gimme_cache/env/go1.12.linux.amd64.env"
10:20:40 PM: go version go1.12 linux/amd64
10:20:40 PM: Installing missing commands
10:20:40 PM: Verify run directory
10:20:42 PM:
10:20:42 PM: ────────────────────────────────────────────────────────────────
10:20:42 PM: Netlify Build
10:20:42 PM: ────────────────────────────────────────────────────────────────
10:20:42 PM:
10:20:42 PM: ❯ Version
10:20:42 PM: @netlify/build 7.0.0
10:20:42 PM:
10:20:42 PM: ❯ Flags
10:20:42 PM: deployId: 5fd4c3816f2f330008206453
10:20:42 PM: mode: buildbot
10:20:42 PM:
10:20:42 PM: ❯ Current directory
10:20:42 PM: /opt/build/repo
10:20:42 PM:
10:20:42 PM: ❯ Config file
10:20:42 PM: No config file was defined: using default values.
10:20:42 PM:
10:20:42 PM: ❯ Context
10:20:42 PM: production
10:20:42 PM:
10:20:42 PM: ────────────────────────────────────────────────────────────────
10:20:42 PM: 1. Build command from Netlify app
10:20:42 PM: ────────────────────────────────────────────────────────────────
10:20:42 PM:
10:20:42 PM: $ hugo
10:20:43 PM: Building sites … ERROR 2020/12/12 22:20:43 render of "page" failed: "/opt/build/repo/themes/hugo_theme_robust/layouts/_default/single.html:4:3": execute of template failed: template: _default/single.html:4:3: executing "meta" at <partial "single_meta.html" .>: error calling partial: partial "single_meta.html" not found
10:20:43 PM: ERROR 2020/12/12 22:20:43 render of "page" failed: "/opt/build/repo/themes/hugo_theme_robust/layouts/_default/single.html:4:3": execute of template failed: template: _default/single.html:4:3: executing "meta" at <partial "single_meta.html" .>: error calling partial: partial "single_meta.html" not found
10:20:43 PM: ERROR 2020/12/12 22:20:43 render of "taxonomyTerm" failed: "/opt/build/repo/themes/hugo_theme_robust/layouts/_default/baseof.html:17:3": execute of template failed: template: taxonomy/terms.html:17:3: executing "taxonomy/terms.html" at <partial "custom.css" .>: error calling partial: partial "custom.css" not found
10:20:43 PM: ERROR 2020/12/12 22:20:43 render of "taxonomyTerm" failed: "/opt/build/repo/themes/hugo_theme_robust/layouts/_default/baseof.html:17:3": execute of template failed: template: taxonomy/terms.html:17:3: executing "taxonomy/terms.html" at <partial "custom.css" .>: error calling partial: partial "custom.css" not found
10:20:43 PM: Total in 1158 ms
10:20:43 PM: Error: Error building site: failed to render pages: render of "taxonomy" failed: "/opt/build/repo/themes/hugo_theme_robust/layouts/_default/baseof.html:17:3": execute of template failed: template: _default/list.html:17:3: executing "_default/list.html" at <partial "custom.css" .>: error calling partial: partial "custom.css" not found
10:20:43 PM:
10:20:43 PM: ────────────────────────────────────────────────────────────────
10:20:43 PM: "build.command" failed
10:20:43 PM: ────────────────────────────────────────────────────────────────
10:20:43 PM:
10:20:43 PM: Error message
10:20:43 PM: Command failed with exit code 255: hugo
10:20:43 PM:
10:20:43 PM: Error location
10:20:43 PM: In Build command from Netlify app:
10:20:43 PM: hugo
10:20:43 PM:
10:20:43 PM: Resolved config
10:20:43 PM: build:
10:20:43 PM: command: hugo
10:20:43 PM: commandOrigin: ui
10:20:43 PM: environment:
10:20:43 PM: - HUGO_VERSION
10:20:43 PM: - TZ
10:20:43 PM: publish: /opt/build/repo/public
10:20:43 PM: Caching artifacts
10:20:43 PM: Started saving build plugins
10:20:43 PM: Finished saving build plugins
10:20:43 PM: Started saving pip cache
10:20:43 PM: Finished saving pip cache
10:20:43 PM: Started saving emacs cask dependencies
10:20:43 PM: Finished saving emacs cask dependencies
10:20:43 PM: Started saving maven dependencies
10:20:43 PM: Finished saving maven dependencies
10:20:43 PM: Started saving boot dependencies
10:20:43 PM: Finished saving boot dependencies
10:20:43 PM: Started saving rust rustup cache
10:20:43 PM: Finished saving rust rustup cache
10:20:43 PM: Started saving rust cargo bin cache
10:20:43 PM: Finished saving rust cargo bin cache
10:20:43 PM: Started saving go dependencies
10:20:45 PM: Finished saving go dependencies
10:20:48 PM: Build failed due to a user error: Build script returned non-zero exit code: 2
10:20:48 PM: Failing build: Failed to build site
10:20:48 PM: Failed during stage 'building site': Build script returned non-zero exit code: 2
10:20:48 PM: Finished processing build request in 45.156144684s