YAML: пример файла конфигурации и типичные ошибки

Категория: Nginx · Язык: YAML · Обновлено:

YAML-файл хранит данные в виде пар ключ-значение и списков; вложенность задают пробелами, обычно двумя. Табуляцию для отступов не используйте. YAML описывает структуру, а допустимые поля зависят от приложения, которое читает файл.

Объект, список и вложенные значения

YAML
app:
  name: demo
  debug: false
  ports:
    - 8080
    - 8081
  database:
    host: db
    port: 5432

Здесь app содержит объект, ports — список чисел, а database — вложенный объект.

Строки и специальные символы

YAML
message: "Значение: готово"
path: 'C:\\temp\\files'
description: >-
  Длинная строка складывается из нескольких
  строк исходного YAML.

Кавычки помогают однозначно передать :, #, строки, похожие на числа, и специальные символы. Тип YAML scalar может интерпретироваться парсером, поэтому при сомнении задайте строку явно.

Ошибка

Как исправить

Табуляция в отступах

Использовать пробелы

Ключ с двоеточием без пробела

Добавить пробел после :

# внутри строки принят за комментарий

Заключить значение в кавычки

Неверная структура данных

Сверить с документацией приложения

Как проверить YAML?

Используйте парсер или встроенную команду целевого инструмента. Для Docker Compose можно выполнить docker compose config, для Ansible — ansible-playbook --syntax-check.

Обязательны ли кавычки вокруг строк?

Нет, но строки с двоеточиями, символом #, ведущими нулями и похожие на boolean лучше заключать в кавычки, чтобы избежать неожиданного приведения типа.