ソースコードからデプロイ
JavaScript プロジェクトを Dockerfile なしでそのままアップロードできます。Agent Lab がフレームワークを検出してビルドし、ウェブページまたはアプリにします。
何が起きるか#
package.json が最上位にくるようにプロジェクトを zip にしてアップロードします。プラットフォームがプロジェクトを読み取り、ビルドプランを作ってビルドします。
- ブラウザ向けのファイルだけを生成するプロジェクトはウェブページになり、CDN から配信されます。シングルページアプリのパス(
/orders/42など)はすべてindex.htmlを返します。 - サーバーを動かすプロジェクトはコンテナアプリになり、非 root ユーザーで 8080 番ポートで動くイメージにビルドされます。
Dockerfile を書く必要はありません。最上位に Dockerfile がある場合は検出の代わりにそれが使われます。無効にするにはビルド設定を参照してください。
zip に入れないもの
node_modules、.git、dist、.env。依存関係はプラットフォームがインストールし、含まれていてもスキップします。
対応フレームワーク#
| ウェブページになる | アプリになる |
|---|---|
| Vite(React、Vue、Svelte)、Create React App、Vue CLI | Next.js(output: "export" ならウェブページ) |
| Angular、静的 Astro、ビルドスクリプト付きの HTML | Nuxt、SvelteKit、Remix、React Router 7、SSR の Astro |
| Express、Fastify、Koa、Hono、NestJS などの Node サーバー |
npm、pnpm、Yarn、Bun はロックファイルか packageManager フィールドで判定します。Node.js は engines.node、.nvmrc、.node-version の順に読み、なければ最新 LTS(24)を使います。18、20、22、24 が使えます。
環境変数#
プランには、コードが読む変数(.env.example、process.env.*、import.meta.env.*)が並び、シークレットらしいものやビルド時に必要なもの(VITE_*、NEXT_PUBLIC_* など)に印が付きます。
- デプロイ前に入力します。アプリは 設定 › 実行設定(シークレットは シークレット)、ウェブページは 設定 › ビルド変数 です。ソースからビルドしたバージョンには、コードが読むのに未設定の変数が表示されます。
- 変数はビルドにも渡されます。ビルド時の変数はウェブページに埋め込まれるため、
VITE_やNEXT_PUBLIC_の変数にシークレットを入れないでください。 - シークレットはインストールとビルドの手順にマウントで渡されます(プライベートレジストリのトークンなど)。イメージには書き込まれません。
ビルド設定#
検出が外れたときは 設定 › ビルド設定 で上書きします。空欄は検出されます。
| 設定 | 例 | 変数 |
|---|---|---|
| Node.js バージョン | 22 | ALPACK_NODE_VERSION |
| インストールコマンド | npm ci | ALPACK_INSTALL_CMD |
| ビルドコマンド | npm run build:prod | ALPACK_BUILD_CMD |
| 起動コマンド | node dist/server.js | ALPACK_START_CMD |
| 出力ディレクトリ | dist/browser | ALPACK_OUTPUT_DIR |
| リポジトリの Dockerfile を使わない | オン | ALPACK_IGNORE_DOCKERFILE |
| アプリのパス | apps/web | — |
ブランチの実行設定に同じ名前の変数があれば、そちらが優先されます。ALPACK_* はビルドだけに使われ、実行中のアプリには渡されません。
ウェブページと検出されたプロジェクトに起動コマンドを設定すると、アプリになります。
モノレポ#
複数のプロジェクトを含むリポジトリは、リポジトリ全体をアップロードし、ビルド設定の アプリのパス にアプリのフォルダ(例: apps/web)を入力します。プラットフォームはそのフォルダで検出・ビルドするため、そのフォルダの package.json とロックファイルでビルド方法が決まります。リポジトリの他の場所にあるパッケージ(workspace:* の依存など)はまだ使えません。
ビルドが失敗したとき#
| 表示 | 対処 |
|---|---|
| このソースのビルド方法がわからない | zip の最上位に package.json を置くか、起動コマンドを設定します。 |
| ビルドが何も出力しなかった | 出力ディレクトリを、ビルドが実際にファイルを書く場所に設定します。 |
| アプリへのアップロードがウェブページ | アプリはウェブページに戻せません。新しいアプリを作るか、起動コマンドを設定します。 |
| ネイティブモジュールのコンパイル失敗 | ロックファイルをコミットしてください。ネイティブ依存を検出するとコンパイラが追加されます。 |
各手順はバージョンページのビルドログで確認できます。AI ツールでは、先にビルドプランを取得させてください。MCP ツールを参照。