結論
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環境の変化で壊れることがあった。バイナリを直接ダウンロードする方法のほうが安定する