扩展Docker功能的工具,包括Docker图像的增量标记版本控制系统

dove-docker的Python项目详细描述


鸽子

Docker版本控制扩展

Docker的静态标记机制有没有给你安装了窃听器,并阻止你创建完美的、增量版本的Docker映像CD/CI?那么你可能会喜欢这个工具。

它是干什么的?

在配置文件中保留Docker标记模板和版本,并使用此工具包,可以在生成和标记图像时自动增加配置文件中存储的版本,在保存和部署图像时自动选择完整的标记。有什么用?好吧,你把它和git结合起来,你就得到了一个完美的cd/ci,没有任何硬编码标签。

安装

你需要docker(duh)、python3和pip3(python3)。只需克隆存储库并执行a

sudo -H pip install ./

在克隆的存储库中。

用法

和Docker一样,它也是一个命令行工具。在shell上执行dove以显示所有帮助。

Usage: dove [OPTIONS] COMMAND [ARGS]...

  A docker versioning extension that manages docker tags through a JSON
  file, so that the user doesn't have to get into the hassle of writing and
  updating image tags.

  Maintained by: Intech A&I

  For more info, visit:

      https://github.com/intech-iiot/dove

Options:
  --help  Show this message and exit.

Commands:
  build  Build the docker image with saved tag
  bump   Just bump up the current version
  get    Get the current tag from the config
  new    Initialize a new dove config
  push   Push the image with tag saved in the config
  reset  Reset the version at position(s) to 0
  save   Save an image with the tag from the config
  tag    Tag another image with the saved tag

创建新配置

该工具需要一个dove.json配置文件与dockerfile放在一起。此文件可以通过在shell上执行以下操作来创建:

dove new -t my-repo/my-image:{0}.{1}.{2} -i 3.2.1

-t放置带有字符串位置参数的标记模板,-i放置图像的初始版本。

查看当前标签

创建配置文件后,在配置文件所在的目录中运行以下命令:

dove get

这将显示上述配置的my-repo/my-image:3.2.1。显然,版本是使用点(.)拆分的,并且在位置参数上替换组件。当然,您可以在其他命令中使用标记,例如:

docker image inspect $(dove get)

使用当前标记生成图像

为此,Dockerfile必须与Dove配置一起存在。执行A:

dove build

这将开始用配置文件中的当前标记构建docker映像。要提高版本,请执行a:

dove build --bump 0

这将增加版本中用于替换{0}位置参数的部分。类似地,要增加多个部分,请执行a:

dove build --bump 0 --bump 1

只是把标签贴上去

如果您倾向于自己使用docker cli命令,您仍然可以通过手动调整版本来使用配置及其版本调整功能。为此,请执行a:

dove bump --position 0

这将更新配置中的版本并返回stdout中的bumped up标记,该标记可以嵌套在docker命令本身中,例如

docker build -t $(dove bump --position 0) ./

或者您可以在之后直接获取标签

docker build -t $(dove get) ./

在标记中重置版本

您还可以通过以下方式在任何位置重置版本号:

dove reset --position 0

这将在位置0重置版本号,如果您遵循主要次要发布周期,这将非常有用,因为主要发布凹凸意味着次要发布版本重置为0。

< H2>标记现有图像 现有的图像可以用鸽子配置标记。为此,请执行a:

dove tag -s source-image-tag

源图像将使用从当前上下文中的配置文件推断的标记进行标记

保存图像

要使用配置中推断的标记保存图像,请执行a:

dove save -f filename

按图像

如果标记格式包含远程repo,那么我还实现了一个push函数。为此,只需执行a:

dove push

Docker参数

可以通过--args-a参数为dove builddove push命令提供docker builddocker push命令行参数。例如:

dove build -a --pull

dove build -a --pull -a --no-cache -a --label=pickle-rick

是的,我知道,这是相当重复的,而且您只能使用长版本的=,但是我不知道任何其他方法来分隔dove和docker命令行参数。至少总比什么都没有好。

替代标记格式

从0.0.3版开始,引入了用于维护替代标记格式的命令和参数。什么意思是dove.json可以包含多个替换版本的标记格式。这是通过保留主标记格式和维护替换标记格式的名称-值对来完成的。这些标记可以通过-l--alt标志在其他命令中使用。这对于多阶段构建非常有用。通过使用此选项,您可以为不同的版本创建具有相同版本的不同标记。

添加新的替代标记格式

在现有的^ {< CD2>}配置中添加一个新的备用标记,执行一个:

dove add-alt -l my-alt-tag my-repo/my-image:{0}.{1}.{2}

查看所有备降场

要查看添加到配置文件中的备用项,请执行a:

dove alts

删除替代标记格式

通过执行a:

dove remove-alt -n my-alt-tag

在其他命令中使用替代标记

使用配置文件中的标记的任何命令都有一个现有的标志{{CD14>}或^ {CD15>},用于指定要使用的替换的名称。例如,要使用备用标记生成图像,请执行a:

dove build -l my-alt-tag

贡献

我不是一个严格意义上的python程序员,我是作为一个辅助项目来做的,所以我可以制作一些非常精简的cd/ci。如果你愿意为我的这一点贡献我将不胜感激。

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

推荐PyPI第三方库


热门话题
java在ArrayList中比较数字   java在Kotlin中使异步调用同步   让“Scala编程”junit示例在IntelliJ中工作的java问题   java Servlet侦听器未在ContextListener中设置属性   将Microsoft SQL Server数据库连接到我的Java项目   加载资源时出现java“需要注册工厂”异常   java如何使用POI检查excel中的重复记录?   java如何更改机器生成的代码   java如何确保重写的方法是同步的   用Spring编写Hibernate时的java XML奥秘   java管理mysql数据库中存储的用户权限   java如何运行。来自Javascript的jar方法   java我想在Web应用程序中进行身份验证&对桌面应用程序使用相同的凭据。我该怎么做?