結論
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をインストールするのが確実