Генератор Dockerfile

Генератор Dockerfile

Настроить приложение

Выберите один из пяти стеков и укажите файл или пакет, который действительно запускает приложение.

PHP-FPM обслуживает FastCGI на внутреннем TCP-порту 9000, а не HTTP. Подключите его к веб-серверу с поддержкой FastCGI в частной сети. Не публикуйте этот порт в интернете.

Проверить созданные файлы

Создайте Dockerfile и подходящий .dockerignore для проекта на Node.js, Python, PHP-FPM, Go или Rust. Выберите стек и укажите путь или имя исполняемого файла, которые использует ваше приложение, вместо предполагаемой команды запуска. Результат служит отправной точкой для сборки типового проекта с указанными файлами зависимостей. Прочитайте оба созданных файла, прежде чем добавлять их в репозиторий.

Создание и проверка файлов

  1. 1

    Выберите стек и точку запуска

    Для Node.js и Python укажите относительный путь к скрипту, для Go путь к пакету, для Rust имя исполняемого файла Cargo. PHP-FPM использует постоянную команду запуска.

  2. 2

    Задайте директорию и внутренний порт

    Выберите допустимый путь приложения, например /app или /srv/app. EXPOSE лишь документирует порт, поэтому приложение должно самостоятельно прослушивать его. PHP-FPM использует внутренний порт FastCGI 9000.

  3. 3

    Проверьте оба файла

    Прочитайте Dockerfile вместе с .dockerignore. Проверьте имена файлов зависимостей, точку запуска, права доступа и системные зависимости, нужные проекту.

  4. 4

    Скопируйте или скачайте

    Скачайте ZIP-архив и распакуйте оба файла в корень контекста сборки Docker либо скопируйте каждый файл и сохраните под именами Dockerfile и .dockerignore. Затем соберите образ и протестируйте контейнер со своим приложением.

Выберите точку запуска, которая действительно есть в проекте

Генератор не может проверить ваш репозиторий. Он использует указанные вами стек, точку запуска, рабочую директорию и порт. Приложению Node.js нужны начальный файл JavaScript и файл блокировки npm; Python нужны скрипт и requirements.txt; Go нужны модуль go.mod и путь к пакету; Rust нужны проект Cargo и имя исполняемого файла. PHP-FPM работает иначе: запускает процесс FastCGI, а не HTTP-сервер. Разместите перед ним в частной сети контейнеров веб-сервер с поддержкой FastCGI, например Nginx. Образ PHP прослушивает внутренний порт 9000. Не публикуйте этот порт FastCGI в интернете.

Стек Указываемая точка запуска Файлы проекта для проверки
Node.js Относительный путь JavaScript, например server.js package.json, package-lock.json, начальный файл
Python Относительный путь Python, например app.py requirements.txt, начальный файл
PHP-FPM Постоянный процесс php-fpm Исходный код PHP и отдельный веб-сервер FastCGI
Go Путь к пакету, например . или ./cmd/server go.mod и исходный код пакета
Rust Имя исполняемого файла Cargo Cargo.toml, Cargo.lock и указанный исполняемый файл

Что делают созданные файлы

WORKDIR задаёт рабочую директорию процесса внутри образа. Форма принимает пути приложения внутри /app, /srv/app, /opt/app, /workspace, /usr/src/app или /var/www; системные пути вроде /root и символы, которые могли бы превратить ввод в другую инструкцию Dockerfile, отклоняются. EXPOSE документирует порт контейнера; он не открывает сетевой экран хоста и не заставляет приложение прослушивать порт. Созданный .dockerignore исключает из контекста сборки типичные локальные каталоги зависимостей, данные системы контроля версий и файлы .env в корне и вложенных папках. Прочитайте его перед сборкой: если правило исключает нужный проекту файл, скорректируйте его. Никогда не помещайте секреты в исходный код, ARG или ENV.

Компилируемые проекты Go и Rust используют отдельные этапы сборки и запуска, поэтому набор инструментов компилятора не попадает в итоговый образ. Варианты Node.js и Python устанавливают заявленные зависимости, а вариант PHP-FPM запускает службу FastCGI. Настройки контейнера не гарантируют, что реальный проект соберётся, запустится, пройдёт проверку состояния, ответит по нужному маршруту или будет безопасен для развёртывания. Для фреймворков, нативных расширений, сборки ресурсов и прав доступа могут потребоваться дополнительные действия. О порядке слоёв и работе файлов исключений читайте в рекомендациях Docker по сборке и описании контекста сборки.

Проверьте на своём приложении

Распакуйте ZIP-архив в корень контекста сборки, сохранив точные имена Dockerfile и .dockerignore, либо скопируйте каждый файл и сохраните под этими именами. Если ваша версия Docker поддерживает эту команду, выполните docker build --check ., затем docker build -t my-app .. Запустите образ в тестовой среде и проверьте фактическую команду запуска и маршрут. Для HTTP-стеков сопоставьте только нужный порт контейнера и проверьте ответ. Для PHP-FPM используйте частное сетевое соединение FastCGI, не публикуя порт 9000. Перед выпуском в продакшен проверьте актуальные исправления базового образа и файлы блокировки зависимостей.

Часто задаваемые вопросы

Нет. Это типовая отправная точка для выбранного стека и точки запуска. Проверьте фактические файлы зависимостей, системные пакеты, сборку ресурсов, права доступа, поведение при запуске и требования безопасности. Перед развёртыванием соберите и запустите образ со своим проектом.

Нет. EXPOSE документирует порт контейнера. Приложение должно его прослушивать, а сопоставление с хостом задаётся отдельно при запуске. PHP-FPM использует FastCGI, а не HTTP; держите порт 9000 в частной сети контейнеров за подходящим веб-сервером.

Этот файл исключает из контекста сборки Docker типичные локальные зависимости, данные Git и файлы окружения. В ZIP-архиве точка в начале имени файла сохраняется. Распакуйте оба файла в корень контекста сборки, затем проверьте каждое правило на своём проекте, чтобы не исключить файлы, нужные для сборки.

Нет. Выбранные стек, точка запуска, рабочая директория и порт передаются в URL страницы результата и поступают на этот сайт для отображения файлов. Не вводите секреты или пути к частным репозиториям. Инструмент не загружает ваш исходный код и не проверяет репозиторий.

Сопутствующие инструменты

Смешивание цветов

Смешайте два HEX-цвета в 2-20 равномерных образцов. Каждый промежуточный цвет показывается как HEX-код в верхнем регистре, включая оба края.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Генератор бейджей README

Создавайте бейджи shields.io для файлов README на GitHub: статус сборки, версия, лицензия, число загрузок и покрытие кода. Просмотрите и скопируйте фрагмент Markdown.

Генератор случайных адресов

Создавайте 1–20 похожих на адрес записей для макетов и тестов в трёх упрощённых форматах.

Генератор вымышленных телефонных номеров

Создавайте до 50 вымышленных номеров из официально зарезервированных диапазонов пяти стран.

Инструмент доступен на других языках