更新Docker图像并触发命令以响应更新

docker-image-updater的Python项目详细描述


a自动更新Docker图像的实用程序。支持执行 更新映像时的任意命令,以便重新启动运行 容器或触发其他自定义行为。

https://travis-ci.org/zoni/docker-image-updater.svg?branch=masterhttps://coveralls.io/repos/zoni/docker-image-updater/badge.svg?branch=master

安装

Docker图像更新程序可以从 Python Package Index 使用:

pip install docker-image-updater

安装到virtualenv 强烈推荐!

用法

usage: docker-image-updater [-h] [-f FILE] [--debug] [file [file ...]]

positional arguments:
  file                  configuration file(s) to use

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  deprecated - this flag will be removed in the future
  --debug               show debug messages

Docker图像更新程序需要一个或多个配置文件指定 要监视的图像集和要执行的命令集。默认情况下它看起来 对于/etc/docker image updater.yml,但您可以提供一个或多个替代 命令行上的文件。

当指定多个配置文件时,设置将为 与覆盖后一个配置文件中的项合并在一起 以前文件中的项。

推荐的用法是从cron运行docker映像更新程序,使用 像cronic这样的东西来接收邮件 只有在出错的情况下。

示例输出

# docker-image-updater
22:13:04 INFO     Updater    Checking images in set jenkins
22:13:04 INFO     Updater    Updating image zoni/jenkins
22:13:04 INFO     Updater    Pulling image zoni/jenkins
...........................................................................................................................................................................................................................................................................................................................
22:14:50 INFO     Updater    Image zoni/jenkins updated to latest version
22:14:50 INFO     Updater    Running command: supervisorctl restart jenkins
jenkins: stopped
jenkins: started
22:14:54 INFO     Updater    Command exited successfully

配置格式

配置是通过一个yaml文件来表示的,如下所示:

config:
  docker:
    base_url: "unix://var/run/docker.sock"
    version: "1.16"
watch:
  my-app:
    images:
     - my-app
     - redis
    commands:
     - restart my-app

项watch定义要观看的图像集。这是一本字典 键(我的应用程序在上面的示例中)是人类的任意值 参考资料。在每一个键下都有一个带项目images和 需要命令。

图像定义要检查更新的Docker图像列表。你可以 将它们指定为image:tag或简单地指定为image,在这种情况下docker将 自动使用latest标记。

命令 已更新列出的图像。它们将按顺序依次运行。

dockerconfig.docker下的所有项都传递给docker客户端。 有关支持的选项,请参阅 docker-py documentation

< H2>退出代码< /H2> 当一切顺利时,DOCKER图像更新器将退出状态0。 要么没有更新,要么图像被更新,所有的都被定义了 命令返回状态代码0。

如果图像无法更新或一个或多个已定义的命令退出 非零退出状态,然后DOCKER图像更新器将退出 状态1。

启动我

如果你使用这个软件,请考虑 starring 在Github上。这会让我知道它被 其他人。

更改

1.0.0(2015-11-10)

  • 允许指定多个配置文件(将按顺序合并设置)
  • 不赞成–file参数
  • 在许多配置不正确的情况下打印更友好的错误消息

0.0.2(2015-03-02)

  • 更友好的配置文件加载错误消息
  • 将默认配置更改为/etc/docker image updater.yml

0.0.1(2015-03-01)

  • 首次公开发行。

许可证

麻省理工学院许可证(MIT)

版权所有(C)2015 Nick Groenen<;nick@groenen.me>;

兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:

上述版权公告及本许可公告须包括在 所有副本或大部分软件。

软件按原样提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合某一特定目的和非侵犯性。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在诉讼或合同中,侵权行为或其他,产生于, 不属于或与软件、使用或其他交易有关 软件。

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

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像