Расширения

Специальные поля расширения могут иметь любой формат, если их имя начинается с последовательности символов x-. Их можно использовать в любой структуре файла Compose. Это единственное исключение для реализаций Compose, которые молча игнорируют нераспознанные поля.

x-custom:
  foo:
    - bar
    - zot

services:
  webapp:
    image: awesome/webapp
    x-foo: bar

Содержимое таких полей не указано в спецификации Compose и может использоваться для включения пользовательских функций. Реализация компоновки для обнаружения неизвестного поля расширения НЕ ДОЛЖНА завершаться ошибкой, но МОЖЕТ предупреждать о неизвестном поле.

Для расширений платформы настоятельно рекомендуется использовать префикс расширения по имени платформы/поставщика, точно так же, как браузеры добавляют поддержку пользовательские функции CSS.

service:
  backend:
    deploy:
      placement:
        x-aws-role: "arn:aws:iam::XXXXXXXXXXXX:role/foo"
        x-aws-region: "eu-west-3"
        x-azure-region: "france-central"

Информативные исторические заметки

Данный раздел носит информативный характер. На момент написания были известны следующие префиксы:

префикс

поставщик/организация

docker

Docker

kubernetes

Kubernetes

Использование расширений в качестве фрагментов

С поддержкой полей расширения файл Compose можно записывает следующим образом, чтобы улучшить читаемость повторно используемых фрагментов:

x-logging: &default-logging
  options:
    max-size: "12m"
    max-file: "5"
  driver: json-file

services:
  frontend:
    image: awesome/webapp
    logging: *default-logging
  backend:
    image: awesome/database
    logging: *default-logging

указание значений байтов

Значение выражает значение байта в виде строки в формате {amount}{byte unit}: Поддерживаемые единицы измерения: b (байты), k или kb (килобайты), m или mb (мегабайты) и g или gb (гигабайты). байт).

2b
1024kb
2048k
300m
1gb

указание длительности

Значение выражает продолжительность в виде строки в формате {value}{unit} . Поддерживаемые единицы измерения: us (микросекунды), ms (миллисекунды), s (секунды), m (минуты) и h (часы). Значение может объединять несколько значений и использоваться без разделителя.

10ms
40s
1m30s
1h5m30s20ms