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.21Problema: 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.
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.