在Docker卷中使用{.Task.Slot}
我想使用在Docker卷中使用{.Task.Slot},docker,docker-compose,docker-volume,Docker,Docker Compose,Docker Volume,我想使用{{.Task.Slot}语法将各个卷装载到Docker服务的每个副本: services: foo: ... volumes: - type: volume source: foo{{.Task.Slot}} target: /mnt deploy: mode: replicated replicas: 3 volumes: foo1: ... foo2: ...
{{.Task.Slot}
语法将各个卷装载到Docker服务的每个副本:
services:
foo:
...
volumes:
- type: volume
source: foo{{.Task.Slot}}
target: /mnt
deploy:
mode: replicated
replicas: 3
volumes:
foo1:
...
foo2:
...
foo3:
...
但是,Docker在以下方面失败:
service foo: undefined volume "foo{{.Task.Slot}}"
似乎Go语法没有在源
属性中解释,但在目标
属性中,它工作顺利:
services:
foo:
...
volumes:
- type: volume
source: foo1
target: /mnt{{.Task.Slot}}
但这显然不是我需要的。这是正确的方法:
services:
foo:
...
volumes:
- foo:/mnt
deploy:
mode: replicated
replicas: 3
volumes:
foo:
name: 'foo-{{.Task.Slot}}'
...
然后,扩展服务将根据需要创建卷
所有学分都归@larsks所有。有帮助吗?我没有时间马上测试,太棒了。确实如此!谢谢!