docker - 什么是双箭头 (<< : *django) means in dockerfile?

标签 docker yaml

我看到类似的东西

   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 。现在都foobar具有相同的键和值。
<<被称为 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/

相关文章:

java - app.yaml vs appengine-web.xml 使用哪一个?

Azure DevOps - 在 Azure YAML 管道的 React 构建中将文件夹拖放到空

elasticsearch - 普罗米修斯 vs ElasticSearch。哪个更适合容器和服务器监控?

通过 docker 的 Rstudio 无法读取/etc/.odbc.ini,只能读取 ~/.odbc.ini

docker - 有没有办法通过任务定义配置在 AWS ECS 中轮换日志?

docker - 如何在临时容器中创建一个空文件?

yaml - 最新版本的 ruamel.yaml 无法解析简单的流映射

docker - CentOS 7.5上是否可以使用docker存储驱动程序overlay2生产?

bash - 使用 Bash 进行 Yaml 变量赋值的问题

google-cloud-platform - Ansible 中的复杂数据结构