結論

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

zola: not found

エラーが発生する。

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

追記(2026年10月):下で紹介しているasdfの方法は、2026年10月時点で動かなくなった。今は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

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

追記(2026年10月):asdfの方法が動かなくなった

しばらくぶりにdeployしたところ、上のasdfの方法でbuildが失敗するようになっていた。

Executing user command: asdf plugin add zola https://github.com/salasrod/asdf-zola && asdf install zola 0.20.0 && asdf global zola 0.20.0 && zola build
Plugin named zola already added
Failed: Error while executing user command. Exited with error code: 2
Failed: build command exited with code: 1
Failed: error occurred while running build command

原因

  • build環境に、asdfのzolaプラグインが最初から入るようになったらしい。すでにあるプラグインをasdf plugin addすると、asdfは「Plugin named zola already added」を出して終了コード2で終わる。
  • コマンドを&&でつないでいるので、そこで止まってzola buildまで進まない。
  • さらに、新しいasdf(0.16以降)ではasdf globalが廃止されている(asdf setに置き換え)。1行目を通しても、次でまた落ちる可能性が高い。

対応

asdfをやめて、Zolaのバイナリを直接ダウンロードする方法に切り替えた。上の別解と同じ考え方で、1行にまとめている。

curl -sL https://github.com/getzola/zola/releases/download/v0.20.0/zola-v0.20.0-x86_64-unknown-linux-gnu.tar.gz | tar xz && ./zola build
  • アーカイブを展開するとzolaのバイナリ1つだけが出てくるので、そのまま./zola buildで実行できる。
  • Build output directoryはpublicのまま。
  • 以前の設定で使っていた環境変数ZOLA_VERSIONは、このコマンドでは使わないので削除した。

build環境のツールの入れ方が変わっても影響を受けにくく、Zolaのバージョンも URL で固定できる。

Zolaのバージョンについて

今回は、ローカルで使っている0.20.0にそろえた。2026年10月時点の最新は0.23系だが、0.22でコードハイライトの仕組みが変わり、0.23も大きな互換性の変更があるので、deployの修正とは分けて上げる予定。

まとめ

  • Cloudflare Pages v2/v3ではZolaはデフォルトで使えない
  • presetや環境変数だけでは解決しないケースがある
  • build command内でZolaをインストールするのが確実
  • asdfはbuild環境の変化で壊れることがあった。バイナリを直接ダウンロードする方法のほうが安定する

参考