Как указать итератор в пути к тому при использовании docker-compose для расширения сервиса?

Фон: Я использую docker-compose для размещения службы tomcat в кластере Docker Swarm, но в настоящее время я борюсь с тем, как бы я подошел к каталогу журналирования, учитывая, что я хочу масштабировать службу, сохраняя при этом уникальность каталога журналирования ,

Рассмотрим (очевидно) составленную docker-compose, которая просто запускает tomcat и монтирует файловую систему журналирования, в которую записываются журналы.

version: '2' services: tomcat: image: "tomcat:latest" hostname: tomcat-example command: /start.sh volumes: - "/data/container/tomcat/logs:/opt/tomcat/logs,z"

Версии

Докер 1.11docker-compose 1.7.1API версия 1.21

Проблема: Я пытаюсь понять, как бы я подходил к вставке переменной в путь журнала «тома», чтобы каталог журнала был уникальным для каждого экземпляра масштабируемой службы.

сказать,

volumes:
    - "/data/container/tomcat/${container_name}/logs:/opt/tomcat/logs,z"

Я вижу, что на основе имени проекта (или каталога, в котором я нахожусь) имя контейнера на самом деле известно, так что я могу использовать это?

например, установка имени проекта в 'tomcat' и запускdocker-compose scale tomcat=2 Я бы увидел следующие контейнеры.

имя хоста/ tomcat_1имя хоста/ tomcat_2

Таким образом, есть ли способ, которым я мог бы использовать это как переменную в объеме регистрации, Другие предложения или подходы приветствуются. Я понимаю, что мог бы просто указать относительный путь и позволить container_id позаботиться об этом, но теперь, если я присоединяю splunk или logstash к устройствам протоколирования, мне нужно знать, какие из них действительно являются устройствами протоколирования, а не базовыми контейнерами f. / с. Однако в идеале я ищу использовать конкретный абсолютный путь здесь.

Заранее спасибо докерам! Р.

Ответы на вопрос(1)

Ваш ответ на вопрос