-
Wrangler 設定の
imageが Dockerfile へのパスである場合は、Docker ↗ または互換エンジンを起動します。指定するのはディレクトリではなく、Dockerfile 自体です。imageがレジストリ参照(Cloudflare Registry、Docker Hub、Amazon ECR、または Google Artifact Registry)である場合、デプロイ時に Docker は不要です。詳細は イメージ管理 を参照してください。 -
プロジェクトディレクトリで次を実行します。
npx wrangler deployyarn wrangler deploypnpm wrangler deploy -
コマンドが終わるまで待ちます。
wrangler deploy は、コンテナ設定を処理する前に Worker をアップロードして有効化します。Dockerfile イメージの場合、Wrangler はそのあと必要に応じてイメージをビルドしてプッシュします。レジストリイメージの場合は、設定したイメージ参照を使います。これらの手順はトランザクションではありません。新しい Worker がすでに稼働したあとに、イメージのビルド、イメージのプッシュ、または ロールアウト のエラーが起きることがあります。
既存のコンテナアプリケーションでは、実効的なコンテナ設定が変わると Wrangler がロールアウトを開始します。コマンドはすべてのコンテナインスタンスの入れ替え完了を待たないため、新しい Worker のコードが、しばらく前のイメージで動いているコンテナと通信することがあります。初回デプロイではコンテナアプリケーションを直接作成します。実効的なコンテナ設定に変更がないデプロイでは、ロールアウトは始まりません。
ロールアウトのフラグとステップ設定は、Rollouts を参照してください。
Workers Builds は、Git リポジトリに接続した Worker 向けに設定したビルドコマンドとデプロイコマンドを実行します。
| Git ブランチ | デフォルトのデプロイコマンド | Containers |
|---|---|---|
| 本番ブランチ | npx wrangler deploy |
必要に応じてイメージを公開し、コンテナインスタンスをロールアウトします。Dockerfile のビルドは Workers Builds 環境で実行できます。 |
| そのほかのブランチ(非本番ブランチのビルド が有効な場合) | npx wrangler versions upload |
Worker のコードだけをアップロードします。新しいイメージの公開や、コンテナインスタンスのロールアウトは行いません。 |
-
Cloudflare ダッシュボードで Workers & Pages を開き、デプロイする Worker を開いて、Settings > Builds へ進みます。
Workers & Pages を開く ↗ -
Deploy command を
npx wrangler deployにするか、フルデプロイを実行するパッケージスクリプトに設定します。 -
Wrangler 設定と Dockerfile、またはイメージ参照を、Workers Builds の ルートディレクトリ 配下に置きます。
-
本番ブランチ へプッシュします。
-
ビルドが成功したことを確認し、デプロイを確認 します。
リポジトリの接続方法は Workers Builds を参照してください。
wrangler deployは、デプロイする Worker 向けに(必要な場合)コンテナイメージを公開し、コンテナインスタンスをロールアウトします。wrangler versions upload(Workers Builds の非本番ブランチ向けデフォルトデプロイコマンド)は、新しい Worker バージョンだけをアップロードします。新しいイメージの公開や、コンテナインスタンスのロールアウトは行いません。- Preview URLs は、Durable Objects を実装した Worker では生成されません。Containers の Worker もこれに含まれます。非本番の Workers Builds 実行が成功しても Worker バージョンは作られますが、アプリ全体のプレビュー URL は作られません。
| 目的 | 実施内容 |
|---|---|
| 手元のマシンで Worker とコンテナをまとめて変更する | wrangler dev による ローカル開発 |
| 独自のイメージとコンテナインスタンスを持つデプロイ環境を共有する | Wrangler environment または別の Worker を使い、それぞれを Workers Builds に接続して npx wrangler deploy --env staging のようなフルデプロイコマンドを使います。詳細は Workers Builds と Wrangler environments を参照してください。 |
| 本番を更新する | 本番ブランチへマージする(または手元で wrangler deploy を実行する) |
wrangler deploy または本番の Workers Builds デプロイのあと:
-
ダッシュボードで、新しい Worker デプロイが有効になっていることを確認します。
-
コンテナへ届く必要があるリクエストを送り、想定どおりの動作を確認します。
-
任意で
Containers を開く ↗npx wrangler containers listとnpx wrangler containers images listを実行するか、Containers ダッシュボードを開きます。
段階的なステップ、猶予期間、ロールアウトモードについては、Rollouts を参照してください。
| 問題 | 対応 |
|---|---|
| 非本番の Workers Builds 実行は成功するが、アプリを十分にプレビューできない | ローカル開発 を使うか、wrangler deploy を使うステージング Worker または environment を使います。本番前 を参照してください。 |
| デプロイまたは Workers Builds 実行は成功するが、コンテナインスタンスが変わっていないように見える | 段階的ロールアウトがまだ実行中か、コマンドがコンテナを更新していません(versions upload または --containers-rollout=none)。Rollouts を参照してください。 |
| Docker がないためにデプロイが失敗する | image が Dockerfile パスの場合にだけ必要です。Docker を起動する、Workers Builds を使う、レジストリイメージ に切り替える、または Worker のみのデプロイとして --containers-rollout=none を使います。 |
| 初回デプロイ: Worker は動くが、コンテナのルートでエラーになる | プロビジョニングのため数分待ってから、ログを確認します。 |