ビルドプラン(Dockerfile と zbpack)
Git サービスは Zenavo のビルドマシン上で BuildKit を使ってビルドされます。サービスのビルド方法をビルドプランと呼び、デプロイ前にプレビューできます。
Dockerfile
サービスのルートディレクトリに Dockerfile があれば、そのまま使います。別のパスは、サービスの追加時に Advanced Settings → Dockerfile path で、あとからはサービスの Settings タブ → Dockerfile で設定します(例:deploy/api.Dockerfile。ルートディレクトリからの相対パス)。
zbpack
Dockerfile がなければ、zbpack が言語とフレームワークを検出して Dockerfile を生成します。Node.js、Bun、Deno、Python、Go、PHP、Ruby、Java、Rust、.NET、静的サイトなどに対応しています。リポジトリに zbpack.json がある場合や、サービスに ZBPACK_* 環境変数(ビルドや起動のコマンドなど zbpack の設定)がある場合も zbpack を使います。
zbpack でビルドしたイメージはポート 8080 で待ち受けるので、別に設定しない限りそれがサービスの HTTP ポートになります。
zbpack options
サービスの Settings タブ → Build → zbpack options に、1 行に 1 つ KEY=value を入力します。
ZBPACK_BUILD_COMMAND=npm run buildやZBPACK_START_COMMAND=node dist/server.jsのようにZBPACK_で始まるキーは、変数として zbpack に渡されます。Variables タブのZBPACK_*変数より優先されます。- その他のキーは、ルートディレクトリの
zbpack.<service>.jsonに書き込まれます。リポジトリのzbpack.jsonと同じ扱いです。JSON として書いた値({…}、[…]、true、false)は型が保たれます。
zbpack のオプションをひとつでも設定すると、ルートディレクトリに Dockerfile があってもサービスは zbpack でビルドされます。
ビルド引数
Settings タブ → Build → Build arguments に、1 行に 1 つ KEY=value を入力します。それぞれがビルドに渡されます。自分の Dockerfile では同名の ARG 行で読み取り、zbpack が生成した Dockerfile では、コマンドを実行するすべてのステージに Zenavo がその ARG 行を追加します。Variables タブの変数はそれだけではビルドに渡されません。使うには ${KEY} で参照します。例:VITE_API_URL=${API_URL}。
値はビルドログでは隠されますが、宣言したステージが最終イメージに含まれていればイメージの履歴から、ビルドが出力に書き出せば成果物から読み取れます。シークレットをビルド引数で渡すのは、ビルドに必要な場合だけにしてください。
ルートディレクトリ
モノレポでは、サービスの追加時かあとから Settings タブで、Root Directory をサービスのフォルダー(例:/apps/api)に設定します。ビルドはそのフォルダーをコンテキストとして使います。Dockerfile でも zbpack でも同じです。リポジトリの中である必要があります。
そのフォルダーが変わったときだけ再デプロイするには、サービスの Watch paths を設定してください。
マニフェストでは
Settings タブは、プロジェクトマニフェストのサービスの source にある次のフィールドを保存します。エクスポートやインポートするマニフェストで設定することもできます。
"source": {
"git": "https://github.com/acme/mono",
"ref": "main",
"context": "apps/api",
"dockerfile": "Dockerfile",
"build_args": { "NODE_ENV": "production" },
"zbpack": { "ZBPACK_BUILD_COMMAND": "npm run build" },
"auto_deploy": true,
"watch_paths": ["apps/api/", "packages/shared/"]
}Build Plan Preview
プレビューはブランチをクローンし、ビルドや実行はせずに、ビルドが何を使うかを報告します。
| 行 | 例 |
|---|---|
| Provider | Dockerfile、go、nodejs、python など |
| Versions | Go Version 1.26.1、Node.js Version 22 |
| Port | Dockerfile の EXPOSE、zbpack なら 8080 |
制限
ビルドは Zenavo のビルドマシンを共有し、混んでいるときは待ち行列に入ります。1 回のビルドは、クローンを含めてプランの最長ビルド時間まで実行できます:Free は 15 分、Dev は 30 分、Pro、Team、Enterprise は 60 分です。クローンだけで最大 10 分です。上限に達したビルドは停止してデプロイは失敗し、使った時間はそのまま数えられます。プランごとのビルド時間は使用量と請求を参照してください。