在Docker Compose的放置约束中,是否可以指定布尔或条件? 我正在寻找能够模拟此语法的内容:
services:
service1:
deploy:
placement:
constraints:
- <condition1> || <condition2>
在Docker Compose的放置约束中,是否可以指定布尔或条件? 我正在寻找能够模拟此语法的内容:
services:
service1:
deploy:
placement:
constraints:
- <condition1> || <condition2>
不可以实现。你不能做你想做的事情。
我已经寻找了一年半,但是 Swarm 仍然不支持“或运算”。
因此,当前的等效操作是将除条件之外的所有其他标签分组为“不相等”操作。
如果你想要 label == (1 | 2) ,则可以使用以下方式:
constraints:
- label != 3
- label != 4
...
- label != n
这看起来很糟糕,但目前在 swarm 中是唯一可行的方式。
您可以将条件指定为:
version: '3.3'
services:
db:
image: postgres
deploy:
placement:
constraints:
- node.role == manager
- engine.labels.operatingsystem == ubuntu 14.04
if isHere OR isManager label = 'ManagerHere'
,然后在约束条件中测试该标签即可。 - LostNomad311