Перейти к содержанию

Генератор Dockerfile

Создавайте production-ready Dockerfile для вашего языка с многостадийными сборками и разумными настройками.

Выходные данные

Генератор Dockerfile

Выберите язык, и этот инструмент составит Dockerfile вокруг него — базовый образ, установку зависимостей и команду запуска приложения — вместо того, чтобы начинать с пустого файла или копировать старый Dockerfile из предыдущего проекта. Node.js, Python, Go, PHP, Java и статические сайты (с nginx) — все поддерживаются, каждый с правильным базовым образом и порядком слоёв, которые обычно ожидает этот стек.

Опции охватывают то, что изменяется между проектами. Выберите менеджер пакетов — npm, Yarn или pnpm для Node; pip или Poetry для Python — чтобы слой установки скопировал правильный манифест и lockfile перед остальным исходным кодом, сохраняя кеш Docker от переустановки зависимостей при каждом изменении кода. Включите многостадийную сборку, чтобы установить или скомпилировать в одном образе и скопировать только собранный результат в тонкий runtime-образ, отправляя без компилятора или dev-зависимостей. Непривилегированный пользователь, HEALTHCHECK, открытый порт, команда запуска и любые переменные окружения устанавливаются из панели, а .dockerignore исключает .git и node_modules из контекста сборки.

Каждый слой получает короткий комментарий, объясняющий, что он делает и почему — документация столько же, сколько способ проверить файл перед коммитом, и легко отключить, когда вы запомните структуру. Результат обновляется по мере изменения любой опции, так что сравнение однослойной сборки с многослойной не требует ручной регенерации.

Ничто, что вы вводите, не уходит из вашего браузера — Dockerfile собирается полностью на клиенте на JavaScript. Скопируйте результат, загрузите его как .txt-файл, чтобы переименовать локально, или отправьте в другой инструмент, чтобы продолжить работу.

FAQ

Действительно ли сгенерированный Dockerfile собирается?
Он следует стандартной разметке для каждого языка — базовый образ, установка зависимостей, копирование исходного кода, команда запуска — но он всё ещё ожидает, что ваш проект имеет обычные файлы (package.json, requirements.txt, go.mod, composer.json или pom.xml). Проверьте пути и команды относительно вашего проекта перед развёртыванием.
Что меняет опция многостадийной сборки?
Когда она включена, первая стадия "build" устанавливает зависимости (и компилирует для Go и Java) и вторая стадия копирует только готовое приложение в свежий, минимальный образ — меньше по размеру и с гораздо меньшей поверхностью атаки, чем один образ, который держит свои инструменты сборки.
Почему запускать от непривилегированного пользователя?
Процесс, запущенный от root внутри скомпрометированного контейнера, имеет большую возможность влиять на хост. Опция непривилегированного пользователя добавляет специального пользователя (или переиспользует встроенного в образе, такого как "node") и переключается на него перед запуском приложения контейнером.
Что вводить в поле переменных окружения?
Список пар КЛЮЧ=значение, разделённых запятой или новой строкой, например NODE_ENV=production, PORT=3000. Каждая пара становится своей инструкцией ENV. Оставьте пусто, чтобы пропустить этот раздел.
Загружается ли информация про мой проект куда-нибудь?
Нет. Dockerfile собирается полностью в вашем браузере из выбранных вами опций — ничего о вашем проекте не отправляется на сервер.