本文へスキップ

ビルドプラン(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 にある次のフィールドを保存します。エクスポートやインポートするマニフェストで設定することもできます。

json
"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 ​

プレビューはブランチをクローンし、ビルドや実行はせずに、ビルドが何を使うかを報告します。

行例
ProviderDockerfile、go、nodejs、python など
VersionsGo Version 1.26.1、Node.js Version 22
PortDockerfile の EXPOSE、zbpack なら 8080

制限 ​

ビルドは Zenavo のビルドマシンを共有し、混んでいるときは待ち行列に入ります。1 回のビルドは、クローンを含めてプランの最長ビルド時間まで実行できます:Free は 15 分、Dev は 30 分、Pro、Team、Enterprise は 60 分です。クローンだけで最大 10 分です。上限に達したビルドは停止してデプロイは失敗し、使った時間はそのまま数えられます。プランごとのビルド時間は使用量と請求を参照してください。

Zeabur とは関係ありません。