Как указать итератор в пути к тому при использовании 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
Я бы увидел следующие контейнеры.
Таким образом, есть ли способ, которым я мог бы использовать это как переменную в объеме регистрации, Другие предложения или подходы приветствуются. Я понимаю, что мог бы просто указать относительный путь и позволить container_id позаботиться об этом, но теперь, если я присоединяю splunk или logstash к устройствам протоколирования, мне нужно знать, какие из них действительно являются устройствами протоколирования, а не базовыми контейнерами f. / с. Однако в идеале я ищу использовать конкретный абсолютный путь здесь.
Заранее спасибо докерам! Р.