Генератор Docker Compose
Создайте корректный docker-compose.yml из формы: сервисы, образы, порты, переменные, тома, depends_on и политики перезапуска, с пресетами PostgreSQL, MySQL и Redis.
Соответствует актуальной Compose Specification (без ключа «version:»). Именованные тома объявляются автоматически. Замените примеры паролей перед использованием.
Похожие Инструменты
Просмотреть ВсеЧто такое Генератор Docker Compose?
Соберите docker-compose.yml для многоконтейнерных конфигураций, не борясь с отступами YAML. Добавляйте сервисы из пресетов (PostgreSQL, MySQL, Redis, MongoDB, Nginx, ваше приложение) или начните с пустого, затем заполните образ или контекст сборки, порты, переменные окружения, тома, зависимости, политику перезапуска и команду. YAML обновляется по мере ввода, а ошибки объясняются.
Как пользоваться Генератор Docker Compose
- Измените примеры сервисов или используйте Добавить сервис, чтобы вставить пресет.
- Для каждого сервиса задайте Образ (или Контекст сборки (если нет образа)), Порты (хост:контейнер), Переменные окружения (KEY=value), Тома (источник:цель), Зависит от и Политика перезапуска.
- Исправьте проблемы, перечисленные красным (недопустимые имена, порты, переменные или зависимости).
- Скачайте docker-compose.yml и выполните
docker compose up -d.
Пример
Service app (build ., port 3000, NODE_ENV=production, depends on db) + PostgreSQL preset
services:
app:
build: .
restart: unless-stopped
ports:
- "3000:3000"
environment:
NODE_ENV: production
depends_on:
- db
db:
image: postgres:16-alpine
restart: unless-stopped
ports:
- "5432:5432"
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: change-me
POSTGRES_DB: app
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata: {} Когда использовать Генератор Docker Compose
Используйте для настройки локальных сред разработки, демо и простых развёртываний на одном хосте. Для продакшена обычно вручную добавляют проверки работоспособности, лимиты ресурсов, секреты и сети либо используют оркестратор вроде Kubernetes. Замените примерные пароли в пресетах, прежде чем где-либо их использовать.
Как работает Генератор Docker Compose
Форма преобразуется в объект по актуальной спецификации Compose (без устаревшего ключа version:) и сериализуется в YAML через js-yaml. Сопоставления портов заключаются в кавычки, потому что значения без кавычек вроде 22:22 парсеры YAML 1.1 могут прочитать как числа в шестидесятеричной системе. Строки окружения KEY=value превращаются в отображение, а любой том, источник которого — имя, а не путь (например, pgdata:/var/lib/postgresql/data), автоматически объявляется в ключе верхнего уровня volumes:. Проверяются имена сервисов, форматы портов, синтаксис KEY=value и цели depends_on.
Распространенные Случаи Использования
- Локальный запуск приложения с PostgreSQL и Redis
- Передача команде воспроизводимой среды разработки
- Создание файла compose для self-hosted инструмента
- Изучение синтаксиса Compose на примерах
Примечание по Безопасности
Публикация портов баз данных (например, 5432:5432) открывает их на всех интерфейсах хоста. На серверах уберите сопоставление портов или привяжите его к 127.0.0.1 и используйте надёжные пароли или секреты.
Часто Задаваемые Вопросы
Почему нет строки version:?
Ключ version устарел в спецификации Compose, которую использует Docker Compose v2; актуальные версии его игнорируют и выводят предупреждение.
Ждёт ли depends_on готовности базы данных?
Нет, он управляет только порядком запуска. Добавьте healthcheck и condition: service_healthy или повторяйте подключения в приложении.
Чем именованный том отличается от bind mount?
Именованным томом (pgdata:/path) управляет Docker, и он переживает пересоздание контейнера; bind mount (./data:/path) подключает папку с вашей машины.