Выберите драйвер ведения журнала для docker-составьте на основе env

#docker #docker-compose #yaml

Вопрос:

Поэтому у меня есть несколько контейнеров, запущенных с помощью этого docker-compose.yml:

 version: '3' x-logging-fluentd: amp;logging  driver: fluentd  options:  tag: some-tag  fluentd-address: fluentd-server:22222 services:  container-1:  image: "alpine:3.12"  command: ["echo", "hello, world"]  logging:  lt;lt;: *logging  

Для некоторых развертываний требуется регистрация в fluentd, а для других требуется json-файл. В данный момент я должен отредактировать файл docker-compose.yml на месте и выбрать подходящий драйвер. Я хочу сделать это на основе некоторого параметра .env, например:

 version: '3' x-logging-fluentd: amp;logging  driver: ${LOGGING_DRIVER}  options:  tag: some-tag  fluentd-address: fluentd-server:22222  

Проблема в том, что когда драйвер установлен в json-файл, я получил ошибку: unknown log opt 'fluentd-address' for json-file log driver .

Затем я сделал следующую комбинацию:

 x-logging-json: amp;logging-json  driver: json-file  x-logging-fluentd: amp;logging-fluentd  driver: fluentd  options:  tag: some-tag  fluentd-address: localhost:22222  # here config may be selected x-logging: amp;logging  lt;lt;: *logging-json  

Это немного упростило редактирование, но я все еще не могу использовать .env vars, так как якорь YAML этого не позволяет.

Кто-нибудь знает, есть ли способ выбрать ведение журнала (например, с помощью .env) без изменения docker-compose.yml?