Vercel 支持通过 Dockerfile 部署容器到 Fluid Compute

Vercel 现在支持通过 Dockerfile 部署容器到 Fluid compute。项目加入 Dockerfile.vercel 文件后,平台会自动构建、存储镜像并部署,同时在 Fluid compute 上自动伸缩。

使用方式很简洁。创建 Dockerfile.vercel 文件,让服务监听 $PORT(默认 80)并提供 HTTP 响应即可。Go、Rails、Spring Boot、Express、Laravel、ASP.NET、FastAPI 甚至 nginx 后端都支持同样的部署流程。每次 git push 会重建镜像并生成预览 URL,也可用 vercel CLI 直接部署。

Dockerfile on Vercel

几个关键设计点:

Active CPU 计费:Fluid compute 按代码实际运行的 CPU 时间计费,空闲等待(比如等待上游 API 响应期间)不消耗 CPU 费用,按执行时间而非挂钟时间收费。

快速启动:构建时将镜像存为优化启动镜像(压缩快照),启动时流式解压,服务可以在完整镜像下载完之前就开始处理请求,大镜像不会拖慢冷启动。

无状态架构:每个容器都是无状态进程,持久状态放在数据库或缓存等外部服务中,Vercel 可以根据流量动态增减实例。

同步发布的还有 VCR(Vercel Container Registry),一个 OCI 兼容的镜像仓库,支持标准的 docker push/pull/tag 工作流。

Vercel 十年前就支持过单命令部署 Dockerfile,当时基础设施还不成熟。经过多年构建 Builds、Functions、Sandboxes 等底层能力,容器现在作为一等公民运行在与其他服务相同的平台上。

来源:Vercel Blog