Docker serverless-функции без написания Dockerfile
Каждая функция работает в своём Docker-контейнере, но вместо Dockerfile, реестра образов и YAML оркестратора вы задаёте package.json, requirements.txt или go.mod. HTTP, cron, вебхуки и фоновые шаги — из одной serverless-панели.
Обновлено: 2026-06-28
- Docker-изоляция на функцию с managed-образами Node.js 22, Python 3.12 и Go 1.22
- Без Dockerfile, fly.toml и Kubernetes-манифестов для типовых хендлеров
- Нативные модули и CGO через слои — без ограничений edge-изолятов
- Один шлюз для HTTP, cron, вебхуков и async-шагов пайплайна
Кратко
Суть ответа
Docker serverless-функции без написания Dockerfile. Inquir собирает контейнер на функцию из managed-образов рантайма. Вы публикуете код и манифест зависимостей; платформа строит контейнер, планирует его по требованию и подключает маршруты шлюза, cron или шаги пайплайна.
Когда подходит и когда нет
- Нужна Docker-изоляция и нативные зависимости без Dockerfile и реестра на каждый эндпоинт.
- API, cron, вебхуки и фоновые шаги должны жить в одном каталоге функций, а не в отдельных Docker-сервисах.
На что обратить внимание
- Dockerfile на каждый микро-эндпоинт не масштабируется: CVE в базовых образах, их обновления и настройка реплик становятся регулярной рутиной.
- Edge-изоляты избавляют от Docker-операций, но запрещают нативные модули и большинство сценариев с приватной сетью — для тяжёлой логики нужна вторая платформа.
Ситуация: нагрузка и где обычно ломается
Почему «Docker + serverless» обычно означает операционную работу
За Docker-изоляцией часто стоят ECS Fargate, Cloud Run, Fly Machines или Railway: Dockerfile или buildpack, push образа, health check и настройка ingress — и только потом первый трафик.
Cron, вебхуки и фоновые воркеры превращаются в отдельные Docker-сервисы со своими пайплайнами деплоя и секретами, хотя вся логика — один HTTP-хендлер.
Компромиссы
Чего не хватает DIY Docker serverless
Dockerfile на каждый микро-эндпоинт не масштабируется: CVE в базовых образах, их обновления и настройка реплик становятся регулярной рутиной.
Edge-изоляты избавляют от Docker-операций, но запрещают нативные модули и большинство сценариев с приватной сетью — для тяжёлой логики нужна вторая платформа.
Как Inquir помогает в этом сценарии
Docker-изоляция с serverless-моделью деплоя
Inquir собирает контейнер на функцию из managed-образов рантайма. Вы публикуете код и манифест зависимостей; платформа строит контейнер, планирует его по требованию и подключает маршруты шлюза, cron или шаги пайплайна.
Тёплые контейнеры опционально держат прогретые Docker-слоты. Та же граница контейнера обслуживает HTTP, расписания и асинхронную передачу — без своего флота контейнеров и control plane кластера.
Что вы получаете на платформе
Что входит в managed Docker serverless
Managed-образы вместо Dockerfile
Базовые образы Node.js 22, Python 3.12 и Go 1.22 поддерживает платформа. Зависимости объявляются в манифесте — без FROM/WORKDIR/RUN для типовых функций.
Слои для нативных зависимостей
sharp, bcrypt, numpy, pandas и CGO подключаются через слои в полноценном Linux — без собственного пайплайна сборки образов.
Шлюз и задачи в одном каталоге
HTTP, вебхуки, cron и фоновые шаги ссылаются на одни и те же ID функций. Один набор секретов и одна история запусков.
Опциональный тёплый пул
Тёплые контейнеры — когда холодный старт Docker заметен на оживлённых маршрутах. Настраивайте пул по p95/p99, а не по догадкам.
Что сделать дальше, по шагам
Как поставить Docker serverless-функции на Inquir
Хендлер и манифест
Код на Node.js, Python или Go. Зависимости — в стандартном манифесте рантайма, без Dockerfile для обычного случая.
Деплой через платформу
Публикация из браузера или CLI. Inquir собирает образ функции из managed-базы и вашего набора зависимостей.
Маршруты, расписания, пайплайны
Пути на шлюзе, cron в пайплайнах или async после вебхука — одна Docker-функция обслуживает все точки входа.
Пример кода
Dependency manifest instead of a Dockerfile
For most functions you declare dependencies in the language manifest. The platform assembles the container; you focus on handler logic and gateway routing.
{ "name": "resize-api", "type": "module", "dependencies": { "sharp": "^0.33.0" } }
import sharp from 'sharp'; export async function handler(event) { const input = Buffer.from(event.body ?? '', 'base64'); const out = await sharp(input).resize(320).jpeg().toBuffer(); return { statusCode: 200, headers: { 'Content-Type': 'image/jpeg' }, body: out.toString('base64'), isBase64Encoded: true, }; }
Когда подходит и когда нет
Когда выбирать Docker serverless на Inquir
Когда это уместно
- Нужна Docker-изоляция и нативные зависимости без Dockerfile и реестра на каждый эндпоинт.
- API, cron, вебхуки и фоновые шаги должны жить в одном каталоге функций, а не в отдельных Docker-сервисах.
Когда лучше выбрать другое
- Нужны произвольные пакеты ОС или полностью кастомный базовый образ на каждый релиз — managed-рантаймы заточены под типовой случай.
- Субмиллисекундная edge-латентность для крошечного кода на чистом JS — лучше V8-изоляты на edge.
Вопросы и ответы
Вопросы и ответы
Нужен ли Dockerfile на каждую функцию?
Для стандартных Node.js, Python и Go — нет. Зависимости объявляются в package.json, requirements.txt или go.mod; платформа собирает контейнер из managed-образов. Свой Dockerfile — не путь по умолчанию на Inquir.
Чем это отличается от ECS Fargate или Cloud Run?
Там вы сами пакуете контейнеры и связываете балансировщики с планировщиками. Inquir объединяет сборку, шлюз, cron, вебхуки и историю задач в одной serverless-панели.
У каждой функции свой Docker-контейнер?
Да — изолированный контейнер и свой набор зависимостей. Меньше зона отказа и никаких конфликтов общего интерпретатора.
Как уменьшить холодный старт Docker?
Включите тёплые контейнеры, чтобы держать прогретые слоты. Замеряйте хвост задержки с реалистичными телами запросов.