答案 0 :(得分:18)
这些被称为锚。我建议您查看以下网址以获取更多详细信息
https://learnxinyminutes.com/docs/yaml/
按照EXTRA YAML FEATURES
YAML还有一个名为' anchors'的便利功能,可让您轻松复制 整个文档中的内容。这两个键都具有相同的值: anchored_content:& anchor_name此字符串将显示为两个键的值。 other_anchor:* anchor_name
base: &base
name: Everyone has same name
foo: &foo
<<: *base
age: 10
bar: &bar
<<: *base
age: 20
答案 1 :(得分:1)
为补充塔伦(Tarun)的回答,&
标识了一个锚点,而*
是一个指向锚点的别名。 YAML specification中对此进行了以下描述:
在表示图中,一个节点可能出现在多个节点中 采集。序列化此类数据时, 节点由锚点标识。随后的每个事件是 序列化为一个别名节点,该节点返回该锚点。
旁注:
对于那些想开始在docker-compose文件中使用锚点的人,有一种更强大的方法可以通过使用docker-compose YAML extension fields来制作可重复使用的锚点。
version: "3.4"
# x-docker-data is an extension and when docker-compose
# parses the YAML, it will not do anything with it
x-docker-data: &docker-file-info
build:
context: .
dockerfile: Dockerfile
services:
some_service_a:
<<: *docker-file-info
restart: on-failure
ports:
- 8080:9090
some_service_b:
<<: *docker-file-info
restart: on-failure
ports:
- 8080:9595