多文件编写/堆栈帮助程序
otta的Python项目详细描述
奥塔
奥塔是 compose file inheretance 助手
基本原理
对于简单的用例,docker compose的内置默认值就可以了。 但系统确实在增长,出现了以下问题:
- shell命令越来越长
- 组合文件中的代码重复越来越严重
- 项目根目录中的合成文件越来越多
- 复杂的组合配置需要最新的文档
示例
没有Otta
:
docker-compose -f base.yml -f local.yml -f mock_emails.yml -p local up
使用Otta
:
otta up
otta文件和otta目录
otta目录:
otta ├── base.yml ├── local.yml ├── mock_mail_server.yml ├── prod_common.yml ├── prod_a.yml ├── prod_b.yml └── otta.yml
Otta文件:
files:-base.yml-local.yml-mock_mail_server.yml-prod_common.yml-prod_a.yml-prod_b.ymldefault_recipe:localrecipes:local:project_name:localfiles:-base.yml-local.ymloptions:mockmail:files:-mock_mail_server.ymlprod_a:files:-base.yml-prod_common.yml-prod_a.ymlprod_b:project_name:productionfiles:-base.yml-prod_common.yml-prod_b.yml
解释
otta配置是一个包含合成文件和单个otta文件的目录。
Otta文件定义
- 根属性
files
,定义配方中可以使用的所有文件 - 根属性
default_recipe
定义…好吧,默认配方 - 最重要的属性
recipes
定义可用的配方
每个配方都有
- 名称,1到40个符号:字母、数字和下划线
- 可选的
project_name
,具有相同的限制 files
,根属性中定义的文件列表options
,可用选项的可选定义
files
,定义配方中可以使用的所有文件default_recipe
定义…好吧,默认配方recipes
定义可用的配方- 名称,1到40个符号:字母、数字和下划线
- 可选的
project_name
,具有相同的限制 files
,根属性中定义的文件列表options
,可用选项的可选定义
选项有名称(1到20个符号、数字、字母和下划线)和files
属性。
cli参考
Otta及其变体决定了OTTA_REC
env变量的配方
配方规范要么只是配方(local
),要么是带有选项的配方(local+mockmail
)
OTTA_FILE
是otta文件的路径,绝对或相对
将OTTA_DEBUG
设置为1
会使程序打印调试信息
otta
二进制
otta
调用等于docker-compose -f base.yml -f local.yml -p local
skara
二进制
skara
调用等于docker stack deploy -c base.yml -c local.yml
project_name
被忽略
kumla
二进制
kumla
调用等于kompose -f base.yml -f local.yml
project_name
被忽略
贡献
请向Gitlab报告所有问题
欢迎提出请求