PyentryPoint管理Docker容器中的入口点。
pyentrypoint的Python项目详细描述
#pyentrypoint
pyentrypoint是用"python"编写的管理docker容器"entrypoint"的工具。
>此工具避免将shell脚本写入:
-处理命令和子命令
-标识链接的容器
-使用"jinja2"模板生成配置
-在启动服务之前运行命令
-在配置更改时重新加载服务
[![文档状态](https://readthedocs.org/projects/pyentrypoint/badge/?版本=最新](http://pyentrypoint.readthedocs.io/en/latest/?徽章=最新的)[![构建状态](https://travis-ci.org/cmehay/pyentrypoint.svg?branch=master)(https://travis ci.org/cmehay/pyentrypoint)
\usages
\debian
安装git例如
运行apt get update&;apt get install git python pip-y
安装pyentrypoint
运行pip install pyentrypoint
在当前workdir中复制配置文件
复制entrypoint-config.yml.
设置entrypoint
entrypoint['pyentrypoint']
git将是默认命令
cmd['git']
`````
``dockerfile
from alpin
当前工作环境中的配置文件
copy entrypoint-config.yml.
set entrypoint
entrypoint['pyentrypoint']
git将是默认命令
cmd['git']
`` `
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `>
``````
提供多种口味的onbuild语句add entrypoint-config.yml在当前目录
-`goldy/pyentrypoint:python2`
-`goldy/pyentrypoint:python3`
-`goldy/pyentrypoint:python3`
-`goldy/pyentrypoint:python2 alpin2`
/pyentrypoint:python2 alpin2`
-`goldy/pyentrypoint:python2 alpin2`
-`goldy;世界特大示例
-[Tor Hidden Service](https://github.com/cmehay/docker-Tor Hidden Service)
\/>命令:git
命令。
可以是名称或uid/gid。
仅影响处理的命令。
默认情况下为dockerfile用户值。
用户:1000
组:1000
这些文件应该存在(添加或复制)
,并且应该是jinja模板。
注意:如果配置文件以".tpl"结尾,则扩展名为删除。
config_文件:
-/etc/gitconfig
-.ssh/config.tpl将应用于".ssh/config"
-/tmp/id_rsa:.ssh/id_rsa"
注意:如果容器链接到另一个容器,这些变量将传递给它验证链接
如果无法识别链接,则会引发错误
;使用Docker Network或Docker Compose v2时不支持此操作。
链接:
"ssh":
端口:22
名称:"ssh*"
协议:TCP
env可以是列表、字典或字符串
env:
foo:bar
此ID的多个链接默认为False
single:true
他的配置文件
进程
重新加载:
信号:sighup可选,要发送的信号,默认为sighup
PID:1可选,要发送信号的PID,默认为1
监视配置文件:true可选,监视定义的配置文件,默认为true
文件:可选,要监视的文件列表
-/etc/conf/to/watch
-/file/support/*.matching
错误:true
除了error
quiet:false
`````
配置模板
下面是一个假设ssh配置文件的示例:
``jinja
主机服务器:
主机名{{links.ssh.ip}
端口{{links.ssh.port}
```
模板将替换为标识链接的IP地址和端口。所有链接都可以从"links.all"访问,这是一个链接元组,您可以对它进行迭代。
``jinja
{%表示links.all%}
host{{link.names[0]}
hostname{link.ip}
port{links.port}
{%endfor%}
``
在entrypoint config.yml中,标识的链接ssh将成为链接的元组。必须在"jinja"模板中对其进行迭代。
``jinja
{%jinja
{%for link.ssh%}
host{{{link.name[0]}
hostname{{link.ip}
port{{{link.port}
{{%endfor%}
>{%endfor%}
>
>
>``jinja
>{%if'sshkey'sshkey在环境中的环境中对其进行访问。
>
````` jinja
>>"%}`````
可访问对象
>模板中有4个可用对象,模板中有4个可用对象。
-`config`
-`链接`
-`容器`
-`环境`
>-`yaml`
-`json `
<配置反映配置文件。您可以检索此对象中的任何设置。
(请参阅"config.py")
\您可以在配置文件中使用通配符模式标识链接。
`link`与一个物理链接(一个IP和一个端口)相关。
`link`处理以下属性:
-`IP`
-链接IP
-`port`
-链接端口(整数)
-`environ`
-相关容器环境
-`protocol`
-链接协议(`tcp`或`udp`)
-`uri`
-链接uri(例如:`tcp://10.0.0.3:80`)
-`names`
-相关容器名称的元组
-`containers
**Docker网络和Docker组件不支持SE v2**
"containers"处理"container"对象的元组。
"container"处理以下属性:
-`ip`
-container ip
-`environ`
-container environment
-`names`
-容器名称列表
-名称按长度排序,但容器id将是最后一个元素。
-`id`
-十六进制容器id(如果可用,则为空字符串else)
-`links`
-lin的元组与此容器相关的对象
35
‘environ’是容器(os.environ)的环境。
‘env’是"environ"的别名。
//[`JSON号`](https://docs.python.org/2/library/json.html)模块。
json存在于setup-json环境变量中
{%set data=json.loads(env['setup-json'])%}
{{data['param']}
````
setup
/>-` entrypoint_force"正在应用配置并运行pre-conf和post-conf命令,即使未处理所提供的"命令"。
-`entrypoint_preconf_command`在所有pre-conf命令之后运行额外的pre-conf shell命令。
-`entrypoint_postconf_command`运行额外的post-conf shell com在所有post conf命令后强制。
-`entrypoint_debug`启用调试日志。
-`entrypoint_raw`不使用日志记录来显示pre和post conf命令。
如果输出是序列化的,则这可能很有用。
-`entrypoint_disable_reload`即使在'ent中启用了重新加载系统,也禁用重新加载系统rypoint config.yml`.
-`entrypoint_user`覆盖配置中的'user'。
-`entrypoint_group`覆盖配置中的'group'。
-`entrypoint_disable_service`在执行任何操作之前退出包含0的容器。使用环境禁用容器很有用。
\```
pyentrypoint是用"python"编写的管理docker容器"entrypoint"的工具。
>此工具避免将shell脚本写入:
-处理命令和子命令
-标识链接的容器
-使用"jinja2"模板生成配置
-在启动服务之前运行命令
-在配置更改时重新加载服务
[![文档状态](https://readthedocs.org/projects/pyentrypoint/badge/?版本=最新](http://pyentrypoint.readthedocs.io/en/latest/?徽章=最新的)[![构建状态](https://travis-ci.org/cmehay/pyentrypoint.svg?branch=master)(https://travis ci.org/cmehay/pyentrypoint)
\usages
\debian
安装git例如
运行apt get update&;apt get install git python pip-y
安装pyentrypoint
运行pip install pyentrypoint
在当前workdir中复制配置文件
复制entrypoint-config.yml.
设置entrypoint
entrypoint['pyentrypoint']
git将是默认命令
cmd['git']
`````
``dockerfile
from alpin
当前工作环境中的配置文件
copy entrypoint-config.yml.
set entrypoint
entrypoint['pyentrypoint']
git将是默认命令
cmd['git']
`` `
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `>
``````
提供多种口味的onbuild语句add entrypoint-config.yml在当前目录
-`goldy/pyentrypoint:python2`
-`goldy/pyentrypoint:python3`
-`goldy/pyentrypoint:python3`
-`goldy/pyentrypoint:python2 alpin2`
/pyentrypoint:python2 alpin2`
-`goldy/pyentrypoint:python2 alpin2`
-`goldy;世界特大示例
-[Tor Hidden Service](https://github.com/cmehay/docker-Tor Hidden Service)
\/>命令:git
命令。
可以是名称或uid/gid。
仅影响处理的命令。
默认情况下为dockerfile用户值。
用户:1000
组:1000
这些文件应该存在(添加或复制)
,并且应该是jinja模板。
注意:如果配置文件以".tpl"结尾,则扩展名为删除。
config_文件:
-/etc/gitconfig
-.ssh/config.tpl将应用于".ssh/config"
-/tmp/id_rsa:.ssh/id_rsa"
注意:如果容器链接到另一个容器,这些变量将传递给它验证链接
如果无法识别链接,则会引发错误
;使用Docker Network或Docker Compose v2时不支持此操作。
链接:
"ssh":
端口:22
名称:"ssh*"
协议:TCP
env可以是列表、字典或字符串
env:
foo:bar
此ID的多个链接默认为False
single:true
他的配置文件
进程
重新加载:
信号:sighup可选,要发送的信号,默认为sighup
PID:1可选,要发送信号的PID,默认为1
监视配置文件:true可选,监视定义的配置文件,默认为true
文件:可选,要监视的文件列表
-/etc/conf/to/watch
-/file/support/*.matching
错误:true
除了error
quiet:false
`````
配置模板
下面是一个假设ssh配置文件的示例:
``jinja
主机服务器:
主机名{{links.ssh.ip}
端口{{links.ssh.port}
```
模板将替换为标识链接的IP地址和端口。所有链接都可以从"links.all"访问,这是一个链接元组,您可以对它进行迭代。
``jinja
{%表示links.all%}
host{{link.names[0]}
hostname{link.ip}
port{links.port}
{%endfor%}
``
在entrypoint config.yml中,标识的链接ssh将成为链接的元组。必须在"jinja"模板中对其进行迭代。
``jinja
{%jinja
{%for link.ssh%}
host{{{link.name[0]}
hostname{{link.ip}
port{{{link.port}
{{%endfor%}
>{%endfor%}
>
>
>``jinja
>{%if'sshkey'sshkey在环境中的环境中对其进行访问。
>
````` jinja
>>"%}`````
可访问对象
>模板中有4个可用对象,模板中有4个可用对象。
-`config`
-`链接`
-`容器`
-`环境`
>-`yaml`
-`json `
<配置反映配置文件。您可以检索此对象中的任何设置。
(请参阅"config.py")
\您可以在配置文件中使用通配符模式标识链接。
`link`与一个物理链接(一个IP和一个端口)相关。
`link`处理以下属性:
-`IP`
-链接IP
-`port`
-链接端口(整数)
-`environ`
-相关容器环境
-`protocol`
-链接协议(`tcp`或`udp`)
-`uri`
-链接uri(例如:`tcp://10.0.0.3:80`)
-`names`
-相关容器名称的元组
-`containers
**Docker网络和Docker组件不支持SE v2**
"containers"处理"container"对象的元组。
"container"处理以下属性:
-`ip`
-container ip
-`environ`
-container environment
-`names`
-容器名称列表
-名称按长度排序,但容器id将是最后一个元素。
-`id`
-十六进制容器id(如果可用,则为空字符串else)
-`links`
-lin的元组与此容器相关的对象
35
‘environ’是容器(os.environ)的环境。
‘env’是"environ"的别名。
//[`JSON号`](https://docs.python.org/2/library/json.html)模块。
json存在于setup-json环境变量中
{%set data=json.loads(env['setup-json'])%}
{{data['param']}
````
setup
/>-` entrypoint_force"正在应用配置并运行pre-conf和post-conf命令,即使未处理所提供的"命令"。
-`entrypoint_preconf_command`在所有pre-conf命令之后运行额外的pre-conf shell命令。
-`entrypoint_postconf_command`运行额外的post-conf shell com在所有post conf命令后强制。
-`entrypoint_debug`启用调试日志。
-`entrypoint_raw`不使用日志记录来显示pre和post conf命令。
如果输出是序列化的,则这可能很有用。
-`entrypoint_disable_reload`即使在'ent中启用了重新加载系统,也禁用重新加载系统rypoint config.yml`.
-`entrypoint_user`覆盖配置中的'user'。
-`entrypoint_group`覆盖配置中的'group'。
-`entrypoint_disable_service`在执行任何操作之前退出包含0的容器。使用环境禁用容器很有用。
\```