用jinja2语法扩展dockerfiles到更棒的dockerfiles
docker-jinja的Python项目详细描述
Docker Jinja-dj
==jinja2语法和逻辑扩展DockerFiles。
用简单的数据源文件为Jinja创建新的过滤器和函数。
build status:[![构建状态](https://travis-ci.org/grokzen/docker-jinja.svg?branch=master)(https://travis-ci.org/grokzen/docker-jinja)[![覆盖状态](https://coveralls.io/repos/grokzen/docker jinja/badge.png)(https://coveralls.io/r/grokzen/docker jinja)
installation
----
install from pypi with`pip install docker jinja`
to install in development mode,首先导航到项目的根目录,然后运行"pip install-r dev-requirements.txt;pip install-e."。建议在virtualenv中安装,以避免与依赖项冲突。
Quickstart Guide
-------
创建一个dockerfile.jinja,其中包含所有常规dockerfile生成步骤和jinja语法。例如:
```
$cat dockerfile.jinja
来自{{os}
维护者{{mainter}
arg{{arg1}
```
运行"dj"命令。例如:
```
dj--dockerfile dockerfile.jinja--outfile dockerfile--env os=ubuntu:12.04--env mainter=grokzen--env arg1=foobar--config test config.json
`````
foobar
```
配置文件
----
可以创建带有设置的预定义配置文件,环境变量和数据源。
`dj`尝试按以下顺序加载以下配置文件:
-/etc/dj.yaml
-/etc/dj.json
-~/.dj.yaml
-/.dj.json
-$cwd+'.dj.yaml'
-$cwd+'.dj.json'
yaml是首选的文件格式,但是还支持json。
当前无法自动加载源dockerfile旁边的配置文件。
模式来帮助您。
datasource文件是一个python脚本,它可以包含您想要的任何代码,这样您就可以扩展"dj"来执行您想要的任何任务。
`字符串路径列表指向"dj"应该导入的所有文件。(必须是绝对路径)
-指向一个带有cli key-s/--datasource的文件,"dj"将加载该文件。(支持相对路径)
-将python文件添加到contrib文件夹中,在执行过程中自动加载该文件。
>全局函数
金贾。这些函数可用于执行所需的任何有用任务。
若要创建全局函数,请在数据源中定义一个方法,其名称应以"全局"开头,然后紧跟要在Dockerfile中使用的名称。
代码:
``python
def-global-foo():
return"bar"
`` ` ` ` `
您可以从金贾调用它:
` ` ` ` ` shell
`{{foo()}}` ` ` ` `{foo()}}` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `>
过滤器
>要创建一个新的过滤函数,您需要在数据源中定义一个方法,它的名称应该以` ` filter `开头,然后紧跟您要在Dockerfile中使用的名称。例如,如果您有一个在Dockerfile文件中使用的名称,那么您需要在数据源中定义一个方法,它的名称应该以` ` filter `开头,然后紧跟您要在Dockerfile中使用的名称。例如,如果您拥有了以下代码
`` python
def_过滤条(arg):
返回arg.upper()
```
````
其他渲染引擎
**-
因为jinja2只在python>;=3.3上受支持(参考:http://jinja.pocoo.org/docs/intro/)。如果支持其他渲染引擎,则这些引擎可以支持python 3.2。
contribution
----
>在github上打开一个问题,描述您遇到的问题。
打开你的修复公关。pr必须包含一些测试,以验证它是否工作,如果它是一个错误修复或新功能。所有受支持的python环境中的所有测试都必须在travisci上通过,然后才能接受pr。
(麻省理工学院)
==jinja2语法和逻辑扩展DockerFiles。
用简单的数据源文件为Jinja创建新的过滤器和函数。
build status:[![构建状态](https://travis-ci.org/grokzen/docker-jinja.svg?branch=master)(https://travis-ci.org/grokzen/docker-jinja)[![覆盖状态](https://coveralls.io/repos/grokzen/docker jinja/badge.png)(https://coveralls.io/r/grokzen/docker jinja)
installation
----
install from pypi with`pip install docker jinja`
to install in development mode,首先导航到项目的根目录,然后运行"pip install-r dev-requirements.txt;pip install-e."。建议在virtualenv中安装,以避免与依赖项冲突。
Quickstart Guide
-------
创建一个dockerfile.jinja,其中包含所有常规dockerfile生成步骤和jinja语法。例如:
```
$cat dockerfile.jinja
来自{{os}
维护者{{mainter}
arg{{arg1}
```
运行"dj"命令。例如:
```
dj--dockerfile dockerfile.jinja--outfile dockerfile--env os=ubuntu:12.04--env mainter=grokzen--env arg1=foobar--config test config.json
`````
foobar
```
配置文件
----
可以创建带有设置的预定义配置文件,环境变量和数据源。
`dj`尝试按以下顺序加载以下配置文件:
-/etc/dj.yaml
-/etc/dj.json
-~/.dj.yaml
-/.dj.json
-$cwd+'.dj.yaml'
-$cwd+'.dj.json'
yaml是首选的文件格式,但是还支持json。
当前无法自动加载源dockerfile旁边的配置文件。
模式来帮助您。
datasource文件是一个python脚本,它可以包含您想要的任何代码,这样您就可以扩展"dj"来执行您想要的任何任务。
`字符串路径列表指向"dj"应该导入的所有文件。(必须是绝对路径)
-指向一个带有cli key-s/--datasource的文件,"dj"将加载该文件。(支持相对路径)
-将python文件添加到contrib文件夹中,在执行过程中自动加载该文件。
>全局函数
金贾。这些函数可用于执行所需的任何有用任务。
若要创建全局函数,请在数据源中定义一个方法,其名称应以"全局"开头,然后紧跟要在Dockerfile中使用的名称。
代码:
``python
def-global-foo():
return"bar"
`` ` ` ` `
您可以从金贾调用它:
` ` ` ` ` shell
`{{foo()}}` ` ` ` `{foo()}}` ` ` ` `
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `>
过滤器
>要创建一个新的过滤函数,您需要在数据源中定义一个方法,它的名称应该以` ` filter `开头,然后紧跟您要在Dockerfile中使用的名称。例如,如果您有一个在Dockerfile文件中使用的名称,那么您需要在数据源中定义一个方法,它的名称应该以` ` filter `开头,然后紧跟您要在Dockerfile中使用的名称。例如,如果您拥有了以下代码
`` python
def_过滤条(arg):
返回arg.upper()
```
````
其他渲染引擎
**-
因为jinja2只在python>;=3.3上受支持(参考:http://jinja.pocoo.org/docs/intro/)。如果支持其他渲染引擎,则这些引擎可以支持python 3.2。
contribution
----
>在github上打开一个问题,描述您遇到的问题。
打开你的修复公关。pr必须包含一些测试,以验证它是否工作,如果它是一个错误修复或新功能。所有受支持的python环境中的所有测试都必须在travisci上通过,然后才能接受pr。
(麻省理工学院)