Любой HTTP-сервер в Docker теперь деплоится на Vercel одной командой

Vercel добавила деплой HTTP-сервера из Docker: кладёшь Dockerfile.vercel в репозиторий и вызываешь vercel deploy — платформа собирает образ, кладёт в реестр проекта и выкатывает на Fluid compute. Свой registry и кластер не нужны, платите только за CPU, пока код реально выполняется. Единственное правило: сервер слушает $PORT (по умолчанию 80) и отвечает по HTTP.
Как устроен деплой
Минимальный пример — Go: двухэтапная сборка на golang:1.24-alpine, рантайм alpine:3.20. Два файла, main.go и Dockerfile.vercel, и контейнер в проде. Каждый git push пересобирает образ и даёт свой preview URL; можно выкатить и без коммита — просто vercel из терминала. Стек не важен: Rails, Spring Boot, Express, Laravel, FastAPI, nginx — сработают и Java с PHP.
Что в комплекте
- Preview на каждый коммит — отдельный неизменяемый URL, можно откатиться
- Автомасштабирование в обе стороны — инстансы гаснут, когда трафик падает
- Active CPU pricing — счёт только за время выполнения, не за ожидание внешнего API
- Логи, трейсы и метрики в том же дашборде, что и фронт
- Контейнер в одном проекте с фронтом — приватная сеть Vercel между сервисами
Когда нужен Dockerfile
Vercel по-прежнему сам определяет фреймворк из кода — это быстрый путь для типовых приложений. Dockerfile.vercel — для всего остального: системные библиотеки вроде FFmpeg или Chromium, незнакомый фреймворк или образ «как уже бежит локально». При старте платформа стримит сжатый снимок диска и разжимает его на лету — сервер принимает запросы, пока образ ещё докачивается. Инстансы без состояния: данные живут в БД или кэше из Marketplace.
Источник: Run any Dockerfile on Vercel.