Abd*_*uum 6 django yaml docker docker-compose cookiecutter-django
尝试了解 docker-compose 文件是如何创建的,因为我想将其复制到 kubernetes 部署 yaml 文件中。
参考cookiecutter-django 的 docker-composeproduction.yaml文件:
...
services:
django: &django
...
Run Code Online (Sandbox Code Playgroud)
通过 docker-compose 设计,这里的服务名称已经定义为django,但后来我注意到这个额外的位&django。这让我想知道为什么它在这里。再往下看,我注意到以下几点:
...
celeryworker:
<<: *django
...
Run Code Online (Sandbox Code Playgroud)
我不明白这是如何运作的。docker-compose 文档没有引用或提及使用<<,更不用说引用命名服务了,例如*django.
谁能解释一下上述工作原理以及如何将其复制到 kubernetes 部署或服务 yaml 文件(或两者?)(如果可能)?
编辑:@jonsharpe 分享的问题 是相似的,但我不清楚它是如何使用的。
发生了三种不同的事情,它们都不是特定的 compose 语法,而是 yaml 语法。
首先是定义一个锚点,后跟&一个名称。这类似于定义稍后在 yaml 中使用的变量,其值与其出现的 yaml 对象的值相匹配。
接下来是别名,用与*锚点相同的名称指定。这使用 yaml 文件中第二个位置的锚点。
最后是使用该语法的映射合并<<,它将别名中的所有映射值与当前映射中的其余值合并,从而允许您使用特定于撰写文件该部分的值覆盖已保存锚点中的值。
要深入了解这一点,请尝试搜索“yaml 锚点和别名”。对我来说第一个点击的是这篇博客文章:https://medium.com/@kinghuang/docker-compose-anchors-aliases-extensions-a1e4105d70bd
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |