# Deploy a container from a plain Dockerfile

By Steven Van · 2026-10-27

Vercel's beta Container runtime builds a root Dockerfile or Containerfile on all plans, with Active CPU billing and no other framework detected.

A root Dockerfile or Containerfile can now be deployed on [Vercel](<https://creatorstoolbox.com/tools/vercel>)'s Container runtime when no other framework is detected. Vercel selects the Container preset, builds that file, and routes all traffic to the resulting image, as set out in the [Container runtime documentation](<https://vercel.com/docs/functions/runtimes/container>).

## When the Dockerfile is used

If project detection matches another framework, such as Django or Next.js, that framework still wins. To build the Dockerfile or Containerfile instead, there are two options:

- Run vercel project update --framework container (adding --yes skips the confirmation prompt).

- Set "framework": "container" in vercel.json.

A Dockerfile.vercel or Containerfile.vercel continues to win over a detected framework.

## Deploying and testing

Deploy with the Vercel CLI or by pushing to a Git repository. During the build step, the image is built and pushed to Vercel Container Registry. Local testing works with vercel dev, which needs the docker CLI and a Docker daemon on the machine.

Multi-service projects still use services in vercel.json, with a per-service entrypoint pointing to each Dockerfile relative to the service's root.

## Runtime behaviour

- The container must open an HTTP server. The default port is 80, and the PORT environment variable in project settings overrides it.

- Logs come from the container's stdout and stderr. They are not tied to a request, so they are broadcast to all in-flight requests of the instance.

- Instances with no traffic scale down after 5 minutes in production and 30 seconds in preview. The container gets a SIGTERM with a 30-second grace period.

## Availability and pricing

The Container runtime is in **beta** on all plans. It runs on Vercel Functions and is billed with Active CPU pricing, so CPU is charged only while code is actively running, not while waiting on I/O or sleeping. The same Vercel Functions limits apply. Secure Compute and Static IPs are not yet supported with custom container images.

![Vercel](<https://www.google.com/s2/favicons?domain=vercel.com&sz=128>)

Vercel

The platform for frontend developers — deploy, preview, and scale web apps and AI agents with zero config.

[View Vercel →](<https://creatorstoolbox.com/tools/vercel>)

Sources

[Original source](<https://vercel.com/changelog/deploy-a-container-from-a-plain-dockerfile>)

[Read Deploy a container from a plain Dockerfile on Creators Toolbox](<https://creatorstoolbox.com/blog/vercel-deploy-a-container-from-a-plain-dockerfile>)

---
Canonical source: https://creatorstoolbox.com/blog/vercel-deploy-a-container-from-a-plain-dockerfile
