#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?