~/VibeHandbook

Cloudflare

developers.cloudflare.com

Cloudflare Containers

Что это такое

Cloudflare Containers позволяют запускать полноценный образ Linux-контейнера прямо внутри сети Cloudflare, рядом с вашими Workers. Когда Worker'у нужно то, чего он не может сделать сам — более тяжёлая среда выполнения, конкретный бинарник, язык или библиотека, не вписывающиеся в песочницу Workers, — он может передать работу контейнеру, который поднимается близко к вашим пользователям. Вы описываете контейнер, а Worker управляет тем, когда экземпляры запускаются, останавливаются и масштабируются.

Сильные стороны

  • Запускает настоящие образы контейнеров, поэтому можно использовать инструменты и среды выполнения, не работающие в песочнице Workers.
  • Живёт рядом с Workers в глобальной сети Cloudflare, поэтому переход между ними короткий.
  • Worker оркестрирует контейнеры, поэтому вы сохраняете маршрутизацию, аутентификацию и edge-логику, которые у вас уже есть.
  • Хорошо подходит для пакетных задач, обработки медиа, headless-браузеров и переноса существующего кода на основе Docker.
  • Масштабируется по запросу и сворачивается обратно, поэтому вы не платите за простаивающие серверы круглые сутки.

Компромиссы

  • Тяжелее и медленнее стартует, чем обычный Worker, — холодный старт реален, поэтому это не для каждого запроса.
  • Больше движущихся частей: теперь вы управляете образом, его сборкой и жизненным циклом, а не просто скриптом.
  • Стоит дороже чистого Worker'а для той же простой задачи; прибегайте к нему только тогда, когда контейнер действительно нужен.
  • Всё ещё новее, чем Workers, поэтому ожидайте, что инструментарий и лимиты будут продолжать развиваться.

Когда это использовать

Используйте контейнер, когда задача действительно требует полноценной ОС или среды выполнения, которую edge дать не может — запуск существующего CLI-инструмента, язык, не поддерживаемый Workers, или ресурсоёмкий шаг, — сохраняя при этом свою edge-нативную входную точку в Worker'е.

Соответствие vibe coding

Это чистая цель для помощи ИИ, потому что форма знакома: Dockerfile плюс небольшой Worker, который его запускает. Скажите агенту, что вы на Cloudflare Containers, чтобы он правильно настроил привязку Worker-к-контейнеру, а не предполагал обычную облачную виртуальную машину.

// wrangler.jsonc — bind a container to a Worker
{
  "name": "my-app",
  "main": "src/index.ts",
  "containers": [
    { "class_name": "MyContainer", "image": "./Dockerfile" }
  ]
}