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

Генератор Dockerfile

Создайте готовый к производству Dockerfile из структурированных входных данных — выберите базовый стек (Node, Python, Go, Java, Ruby, PHP, Rust, .NET, Nginx или пользовательский образ), затем установите WORKDIR, аргументы build, переменные ENV, системные пакеты, установку зависимостей, команду build, открытые порты, пользователя без прав root, HEALTHCHECK и ENTRYPOINT/CMD в форме exec или shell. Работает полностью в вашем браузере.

Ввод

Тег, добавляемый после имени образа (image:TAG).

Переменные времени сборки. Каждая строка становится инструкцией ARG.

Переменные времени выполнения. Каждая строка становится инструкцией ENV.

Устанавливаются через apk/apt-get в зависимости от базового образа. Оставьте пустым для пропуска.

Скопированы в первую очередь для лучшего кеширования слоя Docker.

Выполняется после копирования файлов зависимостей.

Необязательно. Выполняется после копирования полного исходного кода.

Порты TCP, разделённые запятыми.

Необязательно. Устанавливает USER для времени выполнения.

Необязательно. Команда shell, выполняемая внутри контейнера.

Форма exec — это JSON-массив и не выполняется в shell; форма shell используется как есть.

Необязательно. Используйте, когда CMD предоставляет только аргументы.

Процесс по умолчанию при запуске контейнера.

Вывод

Созданный Dockerfile
 
Это было полезно?

Другие способы использовать этот инструмент

REST API

curl -X POST https://api.iotools.cloud/v1/tool/dockerfile-generator \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "stack": "node",
    "imageTag": "20-alpine",
    "workdir": "/app",
    "envVars": "NODE_ENV=production",
    "depFiles": "package.json package-lock.json",
    "installDeps": "npm ci --omit=dev",
    "exposePorts": "3000",
    "runUser": "node",
    "cmdForm": "exec",
    "cmdValue": "node server.js"
  }'

Подставьте свой собственный ключ из аккаунта. Поля инструмента — это тело запроса, без обёртки.

Спросите у ИИ-агента

Use the IOTools `dockerfile-generator` tool (Dockerfile Generator) on this input:

YOUR_INPUT_HERE

Вставьте это любому агенту, подключённому к MCP-серверу IOTools, и добавьте свой ввод.

Виджет для встраивания

<iframe
  src="https://iotools.cloud/embed/dockerfile-generator/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="Генератор Dockerfile — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

Вставьте это на свою страницу — бесплатно, без ключа, нужна лишь обратная ссылка.

Стоимость вызова API/MCPОт 5 кредитов
Нужно больше кредитов?Посмотреть тарифы

Также доступно через

Руководства

Генератор Dockerfile создает чистый, готовый к производству Dockerfile из нескольких структурированных полей вместо того, чтобы запоминать порядок инструкций и лучшие практики. Выберите базовый стек, заполните, как устанавливается и запускается ваше приложение, и скопируйте результат — без демона Docker, без загрузок, ничего не покидает ваш браузер.

Что это делает

Вы выбираете базовый стек (Node.js, Python, Go, Java, Ruby, PHP, Rust, .NET, Nginx, Alpine, Ubuntu, Debian или полную ссылку на пользовательский образ) и инструмент собирает одностадийный Dockerfile в обычном, кеширующем-дружественном порядке:

  1. FROM с вашим образом и тегом
  2. Переменные ARG времени сборки
  3. WORKDIR
  4. Переменные ENV времени выполнения (значения с пробелами автоматически цитируются)
  5. RUN установки системных пакетов, которая использует apk add --no-cache на образах Alpine и apt-get install --no-install-recommends (с очисткой списка apt) везде
  6. Слой копирования + установки зависимостей, отделённый от вашего исходного кода, чтобы Docker мог кешировать установленные зависимости
  7. COPY . . для остального исходного кода
  8. Необязательный RUN сборки
  9. EXPOSE, необязательный USER без прав root, необязательный HEALTHCHECK
  10. ENTRYPOINT и/или CMD в форме exec (JSON-массив, рекомендуется) или shell

Как использовать

Выберите свой стек, затем отрегулируйте тег и команды установки/сборки в соответствии с вашим проектом. Файлы зависимостей копируются перед полным исходным кодом с целью: пока ваш lockfile не изменяется, Docker переиспользует кешированный слой установки, и пересборки работают быстро. Оставляйте любое необязательное поле пустым, чтобы пропустить эту инструкцию. Когда вы удовлетворены предпросмотром, используйте Copy или Download, чтобы сохранить его как Dockerfile в корне вашего проекта.

Форма exec vs форма shell

Форма exec (CMD ["node", "server.js"]) запускает ваш процесс прямо как PID 1, поэтому получает сигналы типа SIGTERM и чисто завершается — вот почему она рекомендуется. Форма shell (CMD node server.js) оборачивает команду в /bin/sh -c, что удобно, когда вам нужны функции shell, такие как расширение переменных или &&, ценой shell, находящегося между runtime и вашим процессом.

Зачем пользователь без прав root?

Установка USER на аккаунт без прав root ограничивает радиус поражения, если контейнер скомпрометирован. Многие официальные образы (такие как node) поставляются с готовым непривилегированным пользователем. Оставляйте поле пустым, если ваш базовый образ не имеет подходящего пользователя.

Она делает многостадийные сборки?

Нет — этот инструмент создаёт одностадийный Dockerfile, который охватывает наиболее распространённый случай. Для скомпилированных языков вы всё ещё можете добавить команду сборки; для более стройного окончательного образа вы вручную отредактировали бы выход в многостадийную сборку.

Это корректный, построимый Dockerfile?

Он следует официальному синтаксису Docker и широко используемым соглашениям, но команды (установка, сборка, запуск) должны соответствовать вашему фактическому проекту. Обрабатывайте выход как сильную отправную точку и при необходимости корректируйте.

Конфиденциальность

Всё работает локально в вашем браузере. Ваши имена образов, переменные окружения, команды и созданный Dockerfile никогда не загружаются и не логируются — инструмент выполняет чистое создание текста на вашем устройстве.

dockerdockerfilecontainerdevopsci/cdimage

Нравятся инструменты? Уберите рекламу.

Один платёж навсегда убирает всю рекламу с вашего аккаунта. Без подписки, без слежки.