wrangler deploy 会在处理容器配置之前上传并激活你的 Worker。对于 Dockerfile 镜像,Wrangler 随后会在需要时构建并推送镜像。对于 registry 镜像,它使用已配置的镜像引用。这些步骤不是事务性的:新 Worker 已经上线后,仍可能发生镜像构建、镜像推送或滚动发布错误。
对于现有容器应用,当有效容器配置发生变化时,Wrangler 会启动滚动发布。该命令不会等待每个容器实例都被替换,因此新的 Worker 代码可能短暂地与仍运行先前镜像的容器通信。首次部署会直接创建容器应用,没有有效容器变更的部署不会启动滚动发布。
有关滚动发布标志和步骤配置,请参阅滚动发布。
Workers Builds 会运行你为连接到 Git 仓库的 Worker 配置的构建和部署命令。
| Git 分支 | 默认部署命令 | Containers |
|---|---|---|
| 生产分支 | npx wrangler deploy |
需要时发布镜像并滚动更新容器实例。Dockerfile 构建可以在 Workers Builds 环境中运行。 |
| 其他分支(如果启用了非生产分支构建) | npx wrangler versions upload |
仅上传 Worker 代码。不会发布新镜像或滚动更新容器实例。 |
-
在 Cloudflare 仪表板中,转到 Workers 和 Pages,打开要部署的 Worker,然后转到 设置 > 构建。
前往 Workers & Pages ↗ -
将 部署命令 设置为
npx wrangler deploy,或设置为运行完整部署的包脚本。 -
将 Wrangler 配置以及 Dockerfile 或镜像引用放在 Workers Builds 的根目录下。
-
推送到你的生产分支。
-
确认构建成功,然后检查部署。
要连接仓库,请参阅 Workers Builds。
wrangler deploy会(在需要时)发布容器镜像,并为你部署的 Worker 滚动更新容器实例。wrangler versions upload(Workers Builds 中非生产分支的默认部署命令)仅上传新的 Worker 版本。它不会发布新镜像或滚动更新容器实例。- 版本 URL 不会为实现 Durable Objects 的 Workers 生成,这包括 Containers Workers。成功的非生产 Workers Builds 运行仍会创建 Worker 版本,但不会生成完整应用的版本 URL。
| 目标 | 做法 |
|---|---|
| 在本机同时更改 Worker 和容器 | 使用 wrangler dev 进行本地开发 |
| 共享一个具有自己的镜像和容器实例的已部署环境 | 一个 Wrangler 环境或单独的 Worker,每个都连接到 Workers Builds,并使用完整部署命令,例如 npx wrangler deploy --env staging。请参阅 Workers Builds 和 Wrangler 环境。 |
| 更新生产 | 合并到生产分支(或在本地运行 wrangler deploy) |
在 wrangler deploy 或生产 Workers Builds 部署之后:
-
在仪表板中确认新的 Worker 部署处于活动状态。
-
发送必须到达容器的请求,并确认你期望的行为。
-
可选运行
前往 Containers ↗npx wrangler containers list和npx wrangler containers images list,或打开 Containers 仪表板:
有关渐进步骤、宽限期和滚动发布模式,请参阅滚动发布。
| 问题 | 做法 |
|---|---|
| 非生产 Workers Builds 运行成功,但你无法完整预览应用 | 使用本地开发或带有 wrangler deploy 的预发布 Worker 或环境。请参阅生产前。 |
| 部署或 Workers Builds 运行成功,但容器实例看起来没有变化 | 渐进式滚动发布可能仍在运行,或者该命令没有更新容器(versions upload 或 --containers-rollout=none)。请参阅滚动发布。 |
| 因缺少 Docker 导致部署失败 | 仅当 image 是 Dockerfile 路径时才需要。启动 Docker、使用 Workers Builds、切换到 registry 镜像,或使用 --containers-rollout=none 进行仅 Worker 的部署。 |
| 首次部署:Worker 可用,容器路由出错 | 等待几分钟完成配置,然后检查日志。 |