gpt4 book ai didi

docker - Docker:使用多个YAML文件时删除设置

转载 作者:行者123 更新时间:2023-12-02 19:03:26 28 4
gpt4 key购买 nike

使用Docker Swarm,我将所有“替代”都保存在一个yml文件中,如下所示:

docker stack -c base.yml -c overrides.yml deploy myStack

如果我的 base.yml文件定义了 serviceA的这些部署限制:
serviceA:
. . .
deploy:
resources:
limits: {memory: 1024M}
reservations: {memory: 1024M}

我可以轻松地在 overrides.yml中覆盖:
serviceA:
deploy:
resources:
limits: {memory: 2048M}
reservations: {memory: 2048M}

这样,随着产品的新版本发布,我的 base.yml可以更改,但是任何替代都可以轻松地从旧版本传输到新版本。但是,如果我要删除或删除 base.yml中定义的内容怎么办?如果我想保留 reservation,但是通过使用第二个 limits文件删除 yml定义。有什么办法吗?目前,我使用的是Yaml 3.6版。

这两个选项不起作用。这(不可解析):
serviceA:
deploy:
resources:
limits: {memory: }
reservations: {memory: 2048M}

这(使用 base.yml中定义的默认值):
serviceA:
deploy:
resources:
reservations: {memory: 2048M}

最佳答案

当使用多个docker-compose文件时,后一个文件将合并到前一个文件中。这意味着:您不能删除定义,只能修改现有定义或添加新定义(请参阅https://github.com/docker/compose/issues/3729)。一个PR允许创建并关闭它,而没有被合并。

因此,剩下的就是从limits中删除base.yml定义,并将其仅包含在overrides.yml中。

关于docker - Docker:使用多个YAML文件时删除设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56637072/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com