在dockerfile中定义docker命令

wdocker的Python项目详细描述


WDocker

https://travis-ci.org/babab/wdocker.svg?branch=masterhttps://gemnasium.com/babab/wdocker.svghttps://img.shields.io/pypi/v/wdocker.svghttps://img.shields.io/pypi/dm/wdocker.svghttps://img.shields.io/pypi/l/wdocker.svg

GithubBitBucketPyPI^{{a9}

WDocker是管理Docker映像的一个简单的小解决方案 和容器,而不必记住并键入 Docker命令的可选参数。还有更复杂的 管理Docker容器环境的资源,如DeckingDocker 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 buildwdocker runwdocker up

运行测试

用鼻子做测试。在python中安装nose并运行测试 例如,执行以下操作(pyvenv在 Python3.3):

pyvenv .virtualenv
source .virtualenv/bin/activate
pip install -r requirements-dev.txt
nosetests -v

对于每个提交和/或拉取请求,测试由 Travis-CI

缺陷、问题和增强

可以随意使用 GithubBitbucket提交错误、想法或增强。

许可证

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日

已添加

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java Hibernate@ManyToMany mapping只在一个方向上在数据库中添加记录   java将文件上载到tomcat服务器外部的文件夹   java将摄像头捕获的图像上传到服务器   java如何创建Rest API并为进程添加时间延迟?   springmodulesvalidation0中缺少java注释包。8a源文件   如何在java中打印SOAP头   Spring security中的java自定义消息,包括UserDetailsService实现和异常   java如何使用Htmlunit中的表单数据登录站点   web如何在WildFly上自动运行java文件   java如何从已经使用另一个方法传递的参数的方法中获取返回值?   java我在JFrame上有一个索引越界。setContentPane   java中的循环序列/系列打印   java maven 3 webapp没有要运行的测试吗?   java CORS不允许POST请求   java再次在派生类中的Jackson中添加字段,该字段在基类中被忽略   爪哇坑测试显示仆从由于超时而异常退出   java寻找第10001个素数   java jboss是否更改web应用程序上下文根?