~/tools/docker-compose/validate

Docker Compose

Docker Compose Validator

Проверить синтаксис и базовую структуру docker-compose.yml.

Как это работает

Опечатка в docker-compose.yml обычно всплывает не сразу при редактировании, а только в момент docker compose up, когда команда падает с не самым понятным сообщением про невалидную структуру. Docker compose validate online проверяет базовую структуру файла заранее, до попытки реального запуска, и по-человечески объясняет, что именно не так.

Проверка охватывает синтаксис самого YAML в первую очередь, а также несколько частых логических ошибок структуры compose файла: наличие обязательной секции services, и наличие у каждого сервиса хотя бы одного из полей image или build, без которых docker просто не будет знать, какой образ запускать.

Это не полноценная замена официальной команде docker compose config, которая проверяет намного больше нюансов, а быстрый первый чекап перед тем, как тратить время на реальный запуск контейнеров ради проверки banal опечатки в структуре yaml файла.

Частые вопросы

Проверяет ли валидатор версии образов и их доступность в registry?

Нет, это чисто структурная проверка самого файла, доступность образа в Docker Hub или другом registry инструмент не проверяет, эта проверка происходит только в момент реального docker pull при запуске.

Что если ошибка в самом синтаксисе YAML, а не в структуре compose?

Валидатор сначала пытается распарсить сам YAML, и если тут ошибка, покажет именно ее с сообщением от YAML парсера, до проверки специфичной для docker compose структуры дело в этом случае не дойдет.

Ловит ли валидатор ошибки в именах портов вроде опечатки в номере?

Нет, синтаксически неправильный номер порта в кавычках все еще будет валидной строкой YAML, такого рода смысловые опечатки валидатор в текущей версии не отслеживает.

Стоит ли использовать этот инструмент вместо docker compose config?

Как быстрый предварительный чекап в браузере да, удобно, но перед реальным деплоем стоит все равно прогнать файл через официальную команду docker compose config, которая делает более полную и авторитетную проверку.