Docker · Inquir Compute

Docker serverless-функции без написания Dockerfile

Каждая функция работает в своём Docker-контейнере, но вы задаёте package.json, requirements.txt или go.mod вместо Dockerfile, реестра образов и YAML оркестратора. HTTP, cron, вебхуки и фоновые шаги — из одной serverless-панели.

Обновлено: 2026-06-23

  • 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 и registry на каждый эндпоинт.
  • 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-операций, но запрещают нативные модули и большинство сценариев с приватной сетью — нужна вторая платформа для тяжёлой логики.

Docker-изоляция с serverless-моделью деплоя

Inquir собирает контейнер на функцию из managed образов рантайма. Вы публикуете код и манифест зависимостей; платформа строит контейнер, планирует по требованию и вешает маршруты шлюза, cron или шаги пайплайна.

Тёплые контейнеры опционально держат прогретые Docker-слоты. Та же граница контейнера для HTTP, расписаний и async handoff — без своего флота и 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, без своего pipeline сборки образов.

Шлюз и jobs в одном каталоге

HTTP, вебхуки, cron и фоновые шаги ссылаются на те же function ID. Один набор секретов и одна история запусков.

Опциональный тёплый пул

Hot containers, когда cold start Docker заметен на оживлённых маршрутах. Настраивайте пул по p95/p99, а не по догадкам.

Как поставить Docker serverless-функции на Inquir

1

Хендлер и манифест

Код на Node.js, Python или Go. Зависимости в стандартном манифесте рантайма — без Dockerfile для обычного случая.

2

Деплой через платформу

Публикация из браузера или CLI. Inquir собирает образ функции из managed базы и вашего closure зависимостей.

3

Маршруты, расписания, пайплайны

Пути на шлюзе, 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.

package.json (Node.js — no Dockerfile)
{
  "name": "resize-api",
  "type": "module",
  "dependencies": {
    "sharp": "^0.33.0"
  }
}
api/resize.mjs
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 и registry на каждый эндпоинт.
  • API, cron, вебхуки и фоновые шаги должны жить в одном каталоге функций, а не в отдельных Docker-сервисах.

Когда лучше не трогать

  • Нужны произвольные пакеты ОС или полностью кастомный базовый образ на каждый релиз — managed рантаймы заточены под типовой случай.
  • Субмиллисекундная edge-латентность на крошечном pure-JS — лучше V8-изоляторы на edge.

Вопросы и ответы

Нужен ли Dockerfile на каждую функцию?

Нет для стандартных Node.js, Python и Go. Зависимости в package.json, requirements.txt или go.mod; платформа собирает из managed образов. Custom Dockerfile — не дефолтный путь на Inquir.

Чем это отличается от ECS Fargate или Cloud Run?

Там вы сами пакуете контейнеры и связываете балансировщики и планировщики. Inquir объединяет сборку, шлюз, cron, вебхуки и историю jobs в одной serverless-панели.

У каждой функции свой Docker-контейнер?

Да — изолированный контейнер и свой closure зависимостей. Меньше зона отказа и нет конфликтов общего интерпретатора.

Как уменьшить Docker cold start?

Включите hot containers для прогретых слотов. Замеряйте хвост задержки с реалистичными телами запросов.