Como especificar um iterador no caminho do volume ao usar o docker-compose para aumentar o serviço?

Fundo: Estou usando o docker-compose para colocar um serviço tomcat em um cluster de docker swarm, mas atualmente estou lutando com a forma como abordaria o diretório de log, já que eu quero escalar o serviço, mas manter a exclusividade do diretório de log .

Considere a (obviamente) composição do docker-compose que simplesmente inicia o tomcat e monta um sistema de arquivos de log no qual capturar os logs.

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

Versões

docker 1.11docker-compor 1.7.1API versão 1.21

Problema: Estou procurando entender como abordaria a inserção de uma variável no caminho do log 'volume' para que o diretório de log seja exclusivo para cada instância do serviço escalado

dizer,

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

Vejo que, com base no nome do projeto (ou diretório em que estou), o nome do contêiner é realmente conhecido, então eu poderia usar isso?

por exemplo, definindo o nome do projeto como 'tomcat' e executandodocker-compose scale tomcat=2 Eu veria os seguintes contêineres.

nome de anfitrião/ tomcat_1nome de anfitrião/ tomcat_2

Portanto, existe alguma maneira de eu aproveitar isso como uma variável no volume de log? Outras sugestões ou abordagens são bem-vindas. Percebo que eu poderia apenas especificar um caminho relativo e deixar que o container_id cuide disso, mas agora, se eu anexar splunk ou logstash aos dispositivos de registro, precisarei saber quais são realmente dispositivos de registro em oposição aos contêineres de base f / s. No entanto, idealmente, estou procurando usar um caminho absoluto específico aqui.

Agradecemos antecipadamente estivadores! R.

questionAnswers(1)

yourAnswerToTheQuestion