基于Jinja2的Dockerfile和镜像生成器
项目描述
jocker 从基于 Jinja2 的模板文件生成 Dockerfile。您可以可选地从生成的文件构建一个镜像,甚至更可选的是,将其推送到您选择的仓库。
要求
由于Docker的sudo要求,必须以sudo方式运行!
Python 2.6/2.7(errr… 还没有测试?真是个菜鸟!)
安装
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的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 121b0c24470c382f7beb22521da1fcd3533353a16cc4a2751bf1b5e36ceb5243 |
|
MD5 | b7c46af0dcfa660065925febfd61bad6 |
|
BLAKE2b-256 | ecfe1081e5a41b25713c61d2b21c9ae4641b7b6efd11c03a4ceaeb1ff8f50f86 |