Генератор Docker Compose

Создайте корректный docker-compose.yml из формы: сервисы, образы, порты, переменные, тома, depends_on и политики перезапуска, с пресетами PostgreSQL, MySQL и Redis.

Сервис 1
Сервис 2
docker-compose.yml

Соответствует актуальной Compose Specification (без ключа «version:»). Именованные тома объявляются автоматически. Замените примеры паролей перед использованием.

Похожие Инструменты

Просмотреть Все

Что такое Генератор Docker Compose?

Соберите docker-compose.yml для многоконтейнерных конфигураций, не борясь с отступами YAML. Добавляйте сервисы из пресетов (PostgreSQL, MySQL, Redis, MongoDB, Nginx, ваше приложение) или начните с пустого, затем заполните образ или контекст сборки, порты, переменные окружения, тома, зависимости, политику перезапуска и команду. YAML обновляется по мере ввода, а ошибки объясняются.

Как пользоваться Генератор Docker Compose

  1. Измените примеры сервисов или используйте Добавить сервис, чтобы вставить пресет.
  2. Для каждого сервиса задайте Образ (или Контекст сборки (если нет образа)), Порты (хост:контейнер), Переменные окружения (KEY=value), Тома (источник:цель), Зависит от и Политика перезапуска.
  3. Исправьте проблемы, перечисленные красным (недопустимые имена, порты, переменные или зависимости).
  4. Скачайте 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) подключает папку с вашей машины.

Другие категории