在 Docker 卷中使用 {{.Task.Slot}}
Using {{.Task.Slot}} in Docker volumes
我想使用 {{.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}}"
在source
属性中似乎没有解释Go语法,但在target
属性中,它运行顺利:
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。
我想使用 {{.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}}"
在source
属性中似乎没有解释Go语法,但在target
属性中,它运行顺利:
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。