Run any Dockerfile on Vercel
Vercel now runs arbitrary containers: add a Dockerfile.vercel and any HTTP server on $PORT deploys to Fluid compute with per-push previews, autoscaling, and Active CPU pricing — no registry or cluster to manage.
**The gist** Vercel now deploys containers: add a **Dockerfile.vercel** and any HTTP server listening on **$PORT** (default 80) gets built, stored, and autoscaled on **Fluid compute** — Go, Rails, Spring Boot, Laravel, FastAPI, nginx, anything that fits in an image. Every push gets an immutable preview URL, and images are stored as compressed **boot snapshots** streamed at startup to cut cold-boot time.
**Why it matters** What an agent can ship to Vercel is no longer limited to JS frameworks and supported runtimes — a containerized backend deploys beside your frontend on the **same domain and private network** in one deploy. **Active CPU pricing** bills execution time rather than wall time, so a service idling on slow upstream calls isn't burning budget.
**The gist** Vercel now deploys containers: add a **Dockerfile.vercel** and any HTTP server listening on **$PORT** (default 80) gets built, stored, and autoscaled on **Fluid compute** — Go, Rails, Spring Boot, Laravel, FastAPI, nginx, anything that fits in an image. Every push gets an immutable preview URL, and images are stored as compressed **boot snapshots** streamed at startup to cut cold-boot time. **Why it matters** What an agent can ship to Vercel is no longer limited to JS frameworks and supported runtimes — a containerized backend deploys beside your frontend on the **same domain and private network** in one deploy. **Active CPU pricing** bills execution time rather than wall time, so a service idling on slow upstream calls isn't burning budget. **Watch out** Containers are **stateless** — persistent data needs an external service, with **durable storage** attachment still in the works. Anything that doesn't speak HTTP on $PORT doesn't fit the model, and cold-start and cost behavior under real load is so far Vercel's claim rather than community-verified.