什么是双箭头(<<:* django)在dockerfile中的意思?

时间:2018-04-28 04:20:57

标签: docker yaml

我看到类似

的内容
   celerybeat:
     <<: *django

https://github.com/pydanny/cookiecutter-django示例泊坞文件中。

这是什么意思?我不能谷歌<<: *

1 个答案:

答案 0 :(得分:0)

<<*都是YAML键(您也可以将它们视为运算符)。与您的问题相关的另一个关键是&

在YAML中,您可以定义锚点,然后再使用它们。例如,

foo: &myanchor
  key1: "val1"
  key2: "val2"

bar: *myanchor

在此代码段中,&定义了一个锚名称myanchor*myanchor引用该锚点。现在,foobar都具有相同的键和值。

<<称为YAML 合并密钥。您可以将它与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"}}

希望有所帮助。

相关问题