正确的方式来建立,标签和船舶共享码头集装箱。
dockhand的Python项目详细描述
叉子
而https://github.com/6si/shipwright将保持最新。 我只能访问pypi上的dockhand名称。
ShipWright在Git存储库中的 正确的顺序并发布带有git修订/分支标记的内容 这样你就不会忘记图像的来源。
它是一个完美的工具来建立和发布你的图像到地方 比如Docker Hub或者你自己的私人注册中心。看看our motivation看看我们为什么建造它,以及它的痛苦 它为你解决的问题。
安装
shipwright是一个简单的python脚本,您可以使用pip安装它
$ pip install shipwright
快速启动
安装后,只需更改为包含 多个Dockerfiles,在Git中。
将名为.shipwright.json的json格式文件添加到根目录 项目的目录。它至少应该包含 ShipWright配置的编号和一个namespace,可以是 您的Docker Hub用户名或您的私有存储库的URL。
1.0是配置的当前版本。
{"version":1.0,"namespace":"[your docker hub name or private repository]"}
另外,配置文件可以将目录名映射到 Docker仓库。例如,这里是 Docker Hub用户shipwright也映射Git的根 存储库到docker映像shipwright/shared和/foo 目录到shipwright/awesome_sauce。
{"version":1.0,"namespace":"shipwright","names":{"/":"shipwright/shared","/foo":"shipwright/awesome_sauce"}
现在您可以通过简单的 切换到git repo下的任何目录并运行:
$ shipwright
这将遍历所有目录,查找 包含dockerfile。造船厂将按顺序建造这些码头文件 默认情况下,用^{tt8}标记它们$ 连同<namespace>/<dirname>:<git branch>和 <namespace>/<dirname>:latest
工作示例
我们有a sample shipwright project您可以使用 想马上试试这个。
$ git clone https://github.com/6si/shipwright-sample.git
$ cd shipwright-sample
$ shipwright
注意:您可以在本地生成时使用任何想要的用户名。在 上面的例子我们使用“shipwright”。除非你 使用“push”命令。对于您自己的项目,请替换 `` ShipWright``在上面的例子中与您(或您的组织) 官方Docker Hub用户名或专用存储库。
注意,如果您再次运行shipwright,它将返回 立即不做任何事。造船工很聪明 一切都没有改变。
当你切换Git分支时,ShipWright真的很出色。
$ git checkout new_feature $ shipwright
请注意,ShipWright只重建了共享库和服务1, 忽略其他项目,因为它们有一个共同的git祖先。 但是,运行docker images会显示git中的所有图像 存储库已被标记为最新的git修订、分支和 latest。
事实上,当ShipWright构建容器时,它会重写Dockerfiles以便 它们需要当前git中带有标记的基本图像 修订。这确保了整个构建是确定的,并且 可复制。
建筑
默认情况下,如果运行ShipWright时没有参数,它将生成 你的Git回购中的Dockerfiles。可以指定一个或多个specifiers 以选择较少的图像来生成。例如,您可以构建一个 通过在命令中指定图像及其依赖项的名称 行。
$ shipwright <namespace>/some_image
运行“shipwright–help”获取更多说明符及其用法的示例。
发布
只需一个命令,造船工就可以建立你的图像并将它们推到 远程存储库。
$ shipwright push
如果你喜欢的话,你可以直接推你的最新图片而不需要构建。
$ shipwright push --no-build
用于构建的相同说明符也可用于push。你可以用 这将一步构建一整棵树,然后像 所以。
$ shipwright build $ shipwright push -e <namespace>/public_image
0.4.0(2016-06-13)
- 隔离所有git功能,以便创建可插入的源代码管理包装器。
- 更有效客户端需要生成检测。(Issue #63)
- 隔离所有拉链使用,供应商拉链库。
0.2.2(2015-01-07)
- 修复在Unix上与Docker通信时缺少^{TT16}$的错误 插座。
0.2.1(2015-01-01)
- 强制标记支持Docker 1.4.1
- 要求Docker Py>;=0.6
- 已将assert_hostname作为选项添加到.shipwright.json
- 添加了命令行选项--x-assert-hostname以禁用主机名 检查何时使用TLS。对boot2docker有用
0.2.0(2014-12-31)
- 添加了shipwright push和shipwright purge
- 增加了对说明符-u、-d、-e和-x 的支持
0.1.0(2014-09-10)
- 构建并标记容器
- 已将配置移动到.shipwright.json