如何在使用docker-compose扩展服务时在卷path中指定迭代器?

背景:我使用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"

版本

  • docker1.11
  • docker工人1.7.1
  • API版本1.21

问题:我正在考虑如何将variables插入“卷”日志path,以便日志目录对于缩放服务的每个实例都是唯一的

说,

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

我看到基于项目名称(或目录我在)的容器名称是真正知道的,所以我可以使用这个?

例如,将项目名称设置为“tomcat”并运行docker-compose scale tomcat=2我会看到以下容器。

  • 主机名 / tomcat_1
  • 主机名 / tomcat_2

那么有没有什么办法可以利用这个作为日志卷中的variables,欢迎其他的build议或方法。 我意识到,我可以只指定一个相对path,并让container_id照顾这个,但现在如果我将splunk或logstash连接到日志logging设备,我需要知道哪些是确实日志logging设备,而不是基础容器f /秒。 然而,理想情况下,我正在寻找一个特定的绝对path。

先谢谢了dockers! R.

Interesting Posts