在dockerfile中定义docker命令
wdocker的Python项目详细描述
WDocker
WDocker是管理Docker映像的一个简单的小解决方案 和容器,而不必记住并键入 Docker命令的可选参数。还有更复杂的 管理Docker容器环境的资源,如Decking或 Docker compose我建议使用它们来设置环境 多个容器。
使用名为wdocker的Docker包装的原因可能是:
- 它不需要(额外的)配置文件
- 它不会对Docker环境做出任何假设 <>这是非常灵活和可编辑的
安装
安装(从python包索引):
sudo pip install --upgrade wdocker
安装(开发版本):
git clone git://github.com/babab/wdocker.git
cd wdocker
sudo make install
取消安装:
pip uninstall wdocker
在Dockerfile中写入命令
当wdocker运行时,它解析当前目录中的dockerfile并 尝试查找变量和命令。它们都是通过使用 “特殊”注释,以#wd#开头。
定义变量:
#wd# <var> = <value>
定义命令(命令非常像shell别名):
#wd# <command>: <shell command>
在另一个变量或命令中展开变量:
#wd# somevar = {variable}
#wd# somecommand: {variable}
Dockerfile示例
你必须定义自己的命令,它甚至不必是docker 命令,所以你可以得到你想要的创意。
一个非常基本的dockerfile可能如下所示:
#wd# name = example_basic
#wd# build: docker build -t {name} .
#wd# run: docker run -it --name {name} {name}
FROM debian:latest
CMD watch ps aux
完全可以将变量和命令组合在一起,如下所示 示例:
# wdocker vars: #wd# docker = docker #wd# name = combined #wd# build = {docker} build -t {name} . #wd# run = {docker} run -it --name {name} {name} # wdocker commands: #wd# build: {build} #wd# run: {run} #wd# up: {build} && {run} FROM debian:latest CMD watch ps aux
使用wdocker运行命令
如果你只运行wdocker而没有任何参数,它将显示一个用法 消息中包含您在其中定义的可能命令 扩展变量的dockerfile。这可以用来检查任何 在实际执行之前发出命令。
要同时显示变量和内部命令,请使用 -h、-help或--help。
最后一个dockerfile示例的用法消息如下:
Usage: wdocker [<command> | -help]
Commands:
build docker build -t combined .
run docker run -it --name combined combined
up docker build -t combined . && docker run -it --name combined combined
带wdocker-help的完整消息如下:
Usage: wdocker [<command> | -help]
Internal commands:
-help, -h, --help show full usage info and vars
-version show version info
-print-var <variable> print value of <variable>
Variables:
docker = docker
name = combined
build = docker build -t combined .
run = docker run -it --name combined combined
Commands:
build docker build -t combined .
run docker run -it --name combined combined
up docker build -t combined . && docker run -it --name combined combined
这意味着您可以继续执行wdocker build, wdocker run或wdocker up。
运行测试
用鼻子做测试。在python中安装nose并运行测试 例如,执行以下操作(pyvenv在 Python3.3):
pyvenv .virtualenv
source .virtualenv/bin/activate
pip install -r requirements-dev.txt
nosetests -v
对于每个提交和/或拉取请求,测试由 Travis-CI。
许可证
WDocker是在ISC许可下发布的,它在功能上 相当于简化的bsd和mit/expat许可证,使用语言 伯尔尼公约取消了这一点。
版权所有(c)2015 Benjamin Althues<;benjamin@babab.nl>;
允许使用、复制、修改和分发本软件 特此授予收费或不收费的目的,前提是 版权声明和本许可声明出现在所有副本中。
软件按“原样”提供,作者不作任何保证 关于本软件,包括 适销性和适用性。在任何情况下,作者都不承担责任 任何特殊的、直接的、间接的或间接的损害或任何损害 任何由于使用、数据或利润损失而导致的,无论是 因下列原因引起的合同诉讼、疏忽或其他侵权诉讼 或与本软件的使用或性能有关。
更改日志
WDocker的所有显著变化都将记录在这里。项目 附着于Semantic Versioning。
0.2.0-2015年10月02日
已添加
- 此更改日志
- 用于显示版本信息的内部命令-version。
- 支持完整的shell命令,如docker foo exec ip addr | grep 172
已修复
- 没有dockerfile时不显示-help的内部命令
- 调用但未定义变量时的句柄错误
0.1.0-2015年9月26日
已添加
- 初始版本