跳转到主要内容

基于Jinja2的Dockerfile和镜像生成器

项目描述

Build Status

Gitter chat

PyPI

PypI

jocker 从基于 Jinja2 的模板文件生成 Dockerfile。您可以可选地从生成的文件构建一个镜像,甚至更可选的是,将其推送到您选择的仓库。

要求

  • 由于Docker的sudo要求,必须以sudo方式运行!

  • Python 2.6/2.7(errr… 还没有测试?真是个菜鸟!)

  • Docker

安装

pip install jocker

测试

免责声明(英文破绽):这大约需要5个小时的项目。测试尚未完成。是的。保持测试正在编写中。是的。

使用方法

jocker -h
Script to run jokcer via command line

Usage:
    jocker [--varsfile=<path> --templatefile=<path> --outputfile=<path> --dockerconfig=<path> --dryrun -v]
           [--build=<string>|--push=<string>]
    jocker --version

Options:
    -h --help                   Show this screen.
    -f --varsfile=<path>        Path to varsfile (if omitted, will assume "vars.py")
    -t --templatefile=<path>    Path to Dockerfile template
    -o --outputfile=<path>      Path to output Dockerfile (if omitted, will assume "Dockerfile")
    -c --dockerconfig=<path>    Path to yaml file containing docker-py configuration
    -d --dryrun                 Whether to actually generate.. or just dryrun
    -b --build=<string>         Image Repository and Tag to build
    -p --push=<string>          Image Repository and Tag to push to (will target --build)
    -v --verbose                a LOT of output (Note: should be used carefully..)
    --version                   Display current version of jocker and exit

生成

  • 应提供一个包含名为 VARS 的字典的 varsfile(如果省略,则默认为 vars.py)。

  • 应有一个与上述 VARS 字典中的变量相对应的 templatefile(如果省略,则默认为 Dockerfile.template)

  • 应提供 outputfile(如果省略,则默认为 Dockerfile)

Dryrun

如果指定了Dryrun,则将打印生成的模板的输出。不会创建任何文件。

构建和推送

您可以告诉jocker,在生成Dockerfile之后,您希望构建Docker镜像,并可选地将其推送到您选择的仓库。

请注意,为了使此功能正常工作,您必须从您的shell登录到Docker Hub或您的私有镜像仓库。

此外,请注意,为了使这两个功能中的任何一个正常工作,您必须具有sudo权限,因为这是Docker的先决条件。

另外,请注意,您不能同时指定–build和–push,因为–push会触发构建过程。

docker-py的build和push配置

可以指定一个dockerconfig yaml文件,其中可能包含以下内容

client:
    base_url: 'unix://var/run/docker.sock'
    version: '1.14'
    timeout: 10
build:
    quiet: false
    nocache: false
    rm: false
    stream: false
    timeout:
    encoding:

这是docker客户端和构建过程的配置,如https://github.com/docker/docker-py中所述。

Vagrant

提供的Vagrantfile(我还没有完成,完成后会通知您)将加载vbox机器,并在其上安装docker和jocker,从模板生成docker镜像,并在守护模式下运行基于该镜像的容器,以展示jocker(以及docker,我想眨眼)的KRAZIE原始力量。

贡献

请这么做。

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分发

jocker-0.0.5.tar.gz (7.6 kB 查看哈希)

上传时间

由以下支持