結論

Cloudflare Pages(Workers & Deploy)では、build環境にZolaが入っていないため、

zola: not found

エラーが発生する。

build時にZolaを自前でインストールする必要がある


発生したエラー

Zolaでbuildしようとしたところ、以下のエラーが発生した。

00:14:11.893	Executing user command: zola build
00:14:11.902	/bin/sh: 1: zola: not found
00:14:11.903	Failed: Error while executing user command. Exited with error code: 127

原因

Cloudflareのbuild環境(v2 / v3)では、Zolaがプリインストールされていない。

そのため、framework presetをZolaに設定しても、実行時にバイナリが存在せずエラーになる。

詳細は以下のissueでも議論されている:


解決方法

build時にZolaをインストールしてから実行する。

今回はasdfを使ってインストールする方法で対応した。

asdf plugin add zola https://github.com/salasrod/asdf-zola && \
asdf install zola 0.20.0 && \
asdf global zola 0.20.0 && \
zola build

見た目はあまり美しくないが、CI上でbuildを通すだけならこの方法で問題ない。


別解(wgetで直接取得)

asdfを使わず、Zolaのバイナリを直接ダウンロードして実行する方法もある。

wget -O /tmp/zola.tar.gz https://github.com/getzola/zola/releases/download/v0.20.0/zola-v0.20.0-x86_64-unknown-linux-gnu.tar.gz && \
tar -xzf /tmp/zola.tar.gz -C /tmp && \
/tmp/zola build

環境依存を減らしたい場合はこちらの方が安定する。

まとめ

  • Cloudflare Pages v2/v3ではZolaはデフォルトで使えない
  • presetや環境変数だけでは解決しないケースがある
  • build command内でZolaをインストールするのが確実

参考