Форматировщик YAML Docker Compose

ДанныеРазработчик
Реклама · УДАЛИТЬ?

Опции форматирования

Реклама · УДАЛИТЬ?

Гид

Форматировщик YAML Docker Compose

Форматировщик YAML Docker Compose

Вставьте docker-compose.yml и мгновенно получите чистый, единообразно оформленный файл с сервисами, сетями и томами, упорядоченными в соответствии с ожиданиями конвенции Docker Compose. Форматировщик проверяет файл на соответствие современной спецификации Compose, выделяет устаревшие ключи, такие как старый верхний уровень version поле или устаревшие links, и предупреждает о неизвестных настройках сервиса до того, как они приведут к сбоям во время выполнения.

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

  1. Вставьте ваш docker-compose.yml в область ввода или нажмите одну из ссылок примеров, чтобы загрузить образец стека.
  2. Выберите порядок ключей — Конвенция Compose сортирует сервисы в порядке, который ожидается пользователями Compose (образ, перезапуск, среда, порты, тома, …), Альфавитный порядок сортирует строго по алфавиту, или Сохранять сохраняет ваш исходный порядок.
  3. Выберите отступы в 2 или 4 пробела и включите/выключите проверку спецификации Compose.
  4. Просмотрите панель проверки на ошибки, предупреждения относительно устаревших ключей и информационные сообщения о неявных ссылках на сеть.
  5. Скопируйте результат или загрузите его как docker-compose.yml.

Возможности

  • Проверка спецификации Compose – распознаёт верхний уровень services, networks, volumes, configs, secrets, profiles, include, и расширенные поля (x-*); выделяет всё остальное.
  • Предупреждения об устаревании – выделяет устаревший верхний уровень version ключ, links, external_links, и ограничения ресурсов эпохи v2, которые должны быть перемещены под deploy.resources.
  • Упорядочение ключей с учётом сервисов – перестраивает каждый сервис так, чтобы идентифицирующие ключи (image, build, container_name) находились в начале, настройки выполнения (environment, ports, volumes) находятся в середине, а вопросы операционного управления (healthcheck, logging, deploy) располагаются в конце.
  • Проверка ссылок – обнаруживает сервисы, зависящие от неопределённых сервисов, и предупреждает, когда сервис использует сеть, которая не объявлена на верхнем уровне.
  • Требования к сервисам – проверяет, чтобы каждый сервис имел хотя бы один из image, build, extends, или provider, и что restart использует одну из четырёх допустимых политик.
  • Проверка портов и healthcheck – обнаруживает некорректные строки портов, отсутствующие target в длинных форматах портов и healthchecks без test.
  • Три рабочих примера – узел + приложение Postgres, стек WordPress + MySQL + Redis и многоуровневое построение с профилями и ограничениями ресурсов.
  • Локальные и приватные – все парсинг, сортировка и проверка выполняются в браузере. Ваш файл Compose никогда не покидает страницу.

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

  1. Почему устаревший ключ версии на верхнем уровне устарел?

    Ключ версии использовался в устаревших версиях Compose v1, v2 и v3 для выбора схемы для команды docker-compose. Современная спецификация Compose объединила эти схемы в одну непрерывно развивающуюся спецификацию, поэтому объявление версии больше не влияет на поведение — последние версии Docker Compose просто игнорируют его и выводят предупреждение. Удаление этого ключа сокращает файл и избегает путаницы, когда читатели предполагают, что функции v3 ограничены этим объявлением.

  2. Что такое спецификация Compose и как она отличается от старых форматов файлов Compose?

    Спецификация Compose — это открытая, независимая от производителя схема, которая заменяет схемы по версиям, использовавшиеся Docker Compose до 2020 года. Она поддерживается на github.com/compose-spec/compose-spec и реализуется Docker Compose, Podman Compose и другими запускающими процессами. В сравнении с v2 и v3 спецификация удаляет поле версии, делает сервисы единственным обязательным ключом на верхнем уровне и включает поля, относящиеся только к Swarm, такие как deploy, как опциональные метаданные, которые могут быть использованы управляющими процессами.

  3. Почему лучше использовать общий сетевой интерфейс, чем ключ links?

    Ключ links был наследован из эпохи Docker до внедрения сетей и устанавливает только DNS-алиасы между контейнерами на стандартной мостовой сети. Современные пользовательские сети уже обеспечивают автоматическое разрешение DNS по имени сервиса для каждого сервиса, поддерживают несколько изолированных сетей на стеке и позволяют управлять DNS-алиасами с помощью опции aliases. В связи с этим спецификация Compose отмечает ключ links как устаревший и рекомендует явное включение в сеть.

  4. Что делают каждый из политик перезапуска?

    no никогда не перезапускает контейнер. always перезапускает его каждый раз, когда он останавливается, включая после перезапуска демона. on-failure перезапускает только при выходе контейнера с ненулевым статусом, с возможным ограничением количества попыток. unless-stopped ведёт себя как always, за исключением контейнера, который был остановлен вручную до перезапуска демона. Четыре значения — это чувствительные к регистру строки — любое другое значение отклоняется движком Compose.

  5. Как Compose решает, нужно ли загружать или собирать образ?

    Compose анализирует pull_policy, build и image вместе. При pull_policy: always Compose загружает образ перед каждым запуском. При отсутствии или if_not_present (по умолчанию, когда задан только image) он загружает образ только в случае его отсутствия локально. При never он никогда не загружает. Когда указано build вместе с image, pull_policy: build требует пересборку и присваивает результату имя image, в то время как pull_policy: missing пересобирает только в случае отсутствия образа локально.

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?