我看到类似的东西
celerybeat:
<<: *django
在 https://github.com/pydanny/cookiecutter-django示例 docker 文件。
这是什么意思?我不能谷歌
<<: *
最佳答案
<<
和 *
都是 YAML key (您也可以将它们视为运算符)。与您的问题相关的另一个关键是 &
.
在 YAML 中,您可以定义 anchor 并在以后使用它们。例如,
foo: &myanchor
key1: "val1"
key2: "val2"
bar: *myanchor
在此代码片段中,
&
定义一个 anchor 命名它 myanchor
, 和 *myanchor
引用那个 anchor 。现在都foo
和 bar
具有相同的键和值。<<
被称为 YAML 合并 key .您可以将其与 OOP 中的类继承进行比较(不太准确,但可以帮助您理解)。见下面的例子。foo: &myanchor
key1: "val1"
key2: "val2"
bar:
<< : *myanchor
key2: "val2-new"
key3: "val3"
在此代码片段中,我们合并来自
foo
的键和值至 bar
但覆盖 key2
到一个新的值。我们将一个新的键值对添加到 bar
.现在
bar
具有以下值:{"bar": {"key1": "val1", "key2": val2-new", "key3": "val3"}}
.希望有帮助。
关于docker - 什么是双箭头 (<< : *django) means in dockerfile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50072810/