DUIN 开源的镜像更新通知工具
我们通常可以将一台或多台服务器作为 Docker 主机,使用容器跑一些开源的工具服务。而往往我们不知道该什么时候这个这些应用有了更新的版本,最近发现了一个开源的工具,可以检查主机上运行的容器的镜像是否有更新,并可以通过集成多种渠道发送更新通知,这款工具就是 DIUN(Docker Image Update Notifier) 。
DUIN 介绍
DUIN 是一款使用 GO 语言编写的命令行工具,可以本地运行,也可以通过容器运行(开发者提供了构建好的镜像 ),当监控的容器镜像在相应的注册表(Registry)中更新时,可以接收到相应的通知。
DUIN 支持多种监控配置(Providers):
Docker - 分析 Docker 主机上运行容器的镜像,并检查其更新
Podman - 类似 Docker,需要 Podman 以服务方式启动
Kubernetes - 分析 Kubernetes 集群中的 Pods,检查 pod 使用的镜像
Swarm - 分析 Swarm 集群中服务使用的镜像
Nomad - 类似 Docker,分析 Nomad 引擎运行的镜像
Dockerfile - 分析 Dockerfile 中引用的镜像
File - yaml 格式的配置文件,直接配置需要检查的镜像信息
DUIN 支持集成多种通知渠道,例如 Discord, Slack,Matrix,Telegram 以及 Webhook 等。
DUIN 使用示例
这里将演示在 Docker 主机上使用Docker Compose来运行 duin 服务,并集成 Slack,将通知发送到相应的频道。
docker-compose.yml
:
上面的环境变量中
DIUN_WATCH_SCHEDULE=0 */6 * * *
指定每 6 小时做一次检查DIUN_PROVIDERS_DOCKER=true
指定使用 Docker Provider,因此需要绑定/var/run/docker.sock:/var/run/docker.sock
DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true
指定默认检查当前 Docker 环境中运行的所有容器的镜像,如果该值设置为false
,则在运行需要检查镜像的容器时,需要添加标签diun.enable=true
DIUN_NOTIF_SLACK_WEBHOOKURL=
指定了发现更新时,将通知发送到 Slack 的频道,配置的值只需要在 Slack 的某个频道中添加一个Incoming Webhook
应用即可
启动更多的配置,可参考文档。
启动容器,可进入容器进行通知测试
在 Slack 中,将收到如下所示的通知
之后,当 DIUN 发现有新的镜像发布到镜像仓库后,就会收到相应的通知,我们就可以选择是否进行应用升级。
当我们为应用使用固定标签的镜像时,我们可以指定相应的标签来进行检查,如
上面的正则指定了需要检查的标签。
总结
这里推荐了一个开源的容器镜像更新通知工具,同时演示了基于 Docker+Slack 的集成,更多的使用方式请参考其文档 。
同时发布在 Mengz's Blog
版权声明: 本文为 InfoQ 作者【mengzyou】的原创文章。
原文链接:【http://xie.infoq.cn/article/aec10e3d33ba90b12e21bb1ff】。文章转载请联系作者。
评论