在Docker卷中使用{{.Task.Slot}}

我想使用{{.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语法似乎没有在source属性中解释,但是在target属性中却可以顺利运行:

services:
  foo:
    ...
    volumes:
      - type: volume
        source: foo1
        target: /mnt{{.Task.Slot}}

但这显然不是我所需要的。

ainiliyua 回答:在Docker卷中使用{{.Task.Slot}}

这是正确的方法:

services:
  foo:
    ...
    volumes:
      - foo:/mnt
    deploy:
      mode: replicated
      replicas: 3

volumes:
  foo:
    name: 'foo-{{.Task.Slot}}'
    ...

扩展服务后,将根据需要创建卷。

所有学分归@larsks。

本文链接:https://www.f2er.com/3143796.html

大家都在问