DIUN-容器镜像更新通知
我们通常可以将一台或多台服务器作为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 :
services: diun: image: crazymax/diun:latest container_name: diun hostname: home200-diun command: serve volumes: - diundata:/data - "/var/run/docker.sock:/var/run/docker.sock" environment: - "TZ=Asia/Shanghai" - "LOG_LEVEL=info" - "LOG_JSON=false" - "DIUN_WATCH_WORKERS=20" - "DIUN_WATCH_SCHEDULE=0 */6 * * *" - "DIUN_WATCH_JITTER=30s" - "DIUN_PROVIDERS_DOCKER=true" - "DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true" - "DIUN_NOTIF_SLACK_WEBHOOKURL=https://hooks.