当前位置: 首页 > news >正文

Docker镜像更新通知器DIUN

在这里插入图片描述

什么是 DIUN ?

Docker Image Update Notifier 是一个用 Go 编写的 CLI 应用程序,可作为单个可执行文件和 Docker 映像交付,用于当 Docker 映像在 Docker registry中更新时接收通知。

和老苏之前介绍过的 watchtower 不同,DIUN 只是通知,并不会像 watchtower 一样自动更新镜像和容器

文章传送门:watchtower自动化更新docker镜像

准备

原本老苏打算一如既往使用 88邮件来发送消息,但是要么是 554 sender is rejected 错误

diun    | Wed, 24 May 2023 17:17:56 CST ERR Mail notification failed error="gomail: could not send email 1: 554 sender is rejected: 0" image=docker.io/crazymax/diun:latest

要么是 error=EOF 错误,懒得再换邮箱折腾了

diun    | Wed, 24 May 2023 19:14:06 CST ERR Mail notification failed error=EOF image=docker.io/crazymax/diun:latest

DIUN 还支持不少消息类型,老苏最后选择了用 Gotify

在这里插入图片描述

获取 Gotify Token

如果你还不了解、没安装过 Gotify,可以点下面的传送门

文章传送门:Gotify消息推送系统搭建

安装完成后,新建一个应用,获取到Token,我们后面推送消息要用到

在这里插入图片描述

配置文件 diun.yml

Diun 中有两种不同的方式来定义配置

  • 使用环境变量
  • 使用配置文件

老苏采用了配置文件方式,具体的参数可以看官方的说明:https://crazymax.dev/diun/config/

这里我们使用最小配置每 6 小时分析一次本地 Docker 实例的所有正在运行的容器,并使用了 gotify 发送消息

db:path: diun.dbwatch:workers: 10schedule: "0 */6 * * *"firstCheckNotif: truenotif:gotify:endpoint: http://192.168.0.197:8385token: <你的 Gotify Token >priority: 1timeout: 10stemplateTitle: "{{ .Entry.Image }} released"templateBody: |Docker tag {{ .Entry.Image }} which you subscribed to through {{ .Entry.Provider }} provider has been released.providers:docker:watchStopped: truewatchByDefault: true

上面有两处要修改

  • endpoint:要换成你自己的gotify 的访问地址 ;
  • token:也要换成你上一步从 gotify 获取的 Token

安装

与容器相关的应用,都需要绑定挂载 /var/run/docker.sock ,包括我们之前安装的 portainerwatchtowerGlancesNetdatalazydocker 等。

什么是 /var/run/docker.sock ?

/var/run/docker.sockDocker API 的主要入口,简单地说,它是 Docker 守护进程(Docker daemon)默认监听的 Unix 域套接字(Unix domain socket),容器中的进程可以通过它与 Docker 守护进程进行通信。

在这里插入图片描述

图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd

但是群晖的 Docker 管理器并不支持挂载 /var/run/docker.sock 文件,所以这次我们需用命令行来安装

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 diun 和 子目录
mkdir -p /volume2/docker/diun/data# 进入 diun 目录
cd /volume2/docker/diun# 将 diun.yml 放入当前目录# 运行容器
docker run -d \--restart always \--name diun \-v $(pwd)/data:/data \-v $(pwd)/diun.yml:/diun.yml:ro \-v /var/run/docker.sock:/var/run/docker.sock \-e "TZ=Asia/Shanghai" \-e "LOG_LEVEL=info" \-e "LOG_JSON=false" \crazymax/diun:latest \serve

docker-compose 安装

将下面的内容保存为 docker-compose.yml 文件

version: "3.5"services:diun:image: crazymax/diun:latestcontainer_name: diunrestart: alwaysvolumes:- "./data:/data"- "./diun.yml:/diun.yml:ro"- "/var/run/docker.sock:/var/run/docker.sock"environment:- "TZ=Asia/Shanghai"- "LOG_LEVEL=info"- "LOG_JSON=false"command: serve

然后执行下面的命令

# 新建文件夹 diun 和 子目录
mkdir -p /volume2/docker/diun/data# 进入 diun 目录
cd /volume2/docker/diun# 将 diun.yml 和 docker-compose.yml 放入当前目录# 一键启动
docker-compose up -d

在这里插入图片描述

运行

在浏览器中输入 http://群晖IP:8385 ,查看 Gotify消息,当检测到容器有新版本时,会收到信息

在这里插入图片描述

参考文档

crazy-max/diun: Receive notifications when an image is updated on a Docker registry
地址:https://github.com/crazy-max/diun/

Diun 文档
地址:https://crazymax.dev/diun/

alerting system for the publishing of new docker images with DIUN: how have you configurated it for emails message? Have you some examples to optimize mine? I have got a couple of questions… : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/qbunu2/alerting_system_for_the_publishing_of_new_docker/

http://www.lryc.cn/news/91496.html

相关文章:

  • 插件框架PF4J-从理论到实践
  • 怎么将pdf文件免费转为扫描件
  • vue+nodejs校园二手物品交易市场网站_xa1i4
  • Barra模型因子的构建及应用系列六之Book-to-Price因子
  • 【c语言习题】使用链表解决约瑟夫问题
  • JVM之类的初始化与类加载机制
  • 面试专题:java 多线程(1)----synchronized关键字相关问答
  • VMware SD-WAN 5.2 发布 - 软件定义的 WAN
  • Oracle+11g+RAC+PSU_EAM(2)
  • 智能出行 驱动未来|2023 开放原子全球开源峰会 CARSMOS 开源智能出行生态年会即将启幕
  • Linux:centos:周期性计划任务管理《crontab》
  • 克拉默法则证明(Cramer‘s Rule)
  • 【接口防刷】处理方案
  • 安装Linux-SUSE操作系统
  • 二、机器人的结构设计
  • UITableView学习笔记
  • Nginx反向代理与负载均衡
  • Delaunay三角剖分学习笔记
  • @Resource和@Autowired的区别
  • linux达梦数据库的安装与卸载
  • 生成式模型的质量评估标准
  • pinpoint安装部署(相关博客合集)
  • python-匿名函数(lambda函数)
  • JS逆向常见情况
  • 利用matlab对滤波器频率特性分析
  • 对比 RS232,RS422,RS485
  • python使用requests+excel进行接口自动化测试(建议收藏)
  • 华为OD机试真题 Java 实现【食堂供餐】【2023 B卷 考生抽中题】,附详细解题思路
  • 一分钟学一个 Linux 命令 - cd
  • vi(vim)常用命令汇总