gpt4 book ai didi

django - 解释 `<<: *name` 如何在 docker-compose 中引用 `&name`?

转载 作者:行者123 更新时间:2023-12-02 19:17:00 25 4
gpt4 key购买 nike

试图了解 docker-compose 文件是如何创建的,因为我想将其复制到 kubernetes 部署 yaml 文件中。
引用 cookiecutter-django's docker-compose production.yaml file :

...
services:
django: &django
...
通过docker-compose设计,这里的服务名称已经定义为 django但后来我注意到这个额外的位 &django .这让我想知道为什么它在这里。再往下,我注意到以下几点:
...
celeryworker:
<<: *django
...
我不明白这是如何工作的。 docker-compose 文档没有引用或提及使用 <<更不用说,引用像 *django 这样的命名服务.
任何人都可以解释上述如何工作以及如何将其复制到 kubernetes 部署或服务 yaml 文件(或两者?)如果可能?
编辑:
question that @jonsharpe shared是相似的,但我不清楚它是如何使用的。

最佳答案

发生了三种不同的事情,它们都不是专门的组合语法,而是 yaml 语法。
首先是用 & 定义一个 anchor 后跟一个名字。这类似于定义稍后在 yaml 中使用的变量,其值与其出现的 yaml 对象的值相匹配。
接下来是别名,用 * 指定和 anchor 同名。这将使用 yaml 文件中第二个位置的 anchor 。
最后是使用 << 的映射合并语法,它将别名中的所有映射值与当前映射中的其余值合并,允许您使用特定于撰写文件该部分的值覆盖保存的 anchor 中的值。
要深入了解这一点,请尝试搜索“yaml anchor 和别名”。对我来说第一次点击是这篇博文:https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd

关于django - 解释 `<<: *name` 如何在 docker-compose 中引用 `&name`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62981096/

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