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 ,包括我们之前安装的 portainer、watchtower,Glances,Netdata 、lazydocker 等。
什么是 /var/run/docker.sock ?
/var/run/docker.sock是Docker 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/
相关文章:
Docker镜像更新通知器DIUN
什么是 DIUN ? Docker Image Update Notifier 是一个用 Go 编写的 CLI 应用程序,可作为单个可执行文件和 Docker 映像交付,用于当 Docker 映像在 Docker registry中更新时接收通知。 和老苏之前介绍过的 watchtower 不同,DIUN 只是通知&…...
插件框架PF4J-从理论到实践
PF4J:Plugin Framework for Java 目录 是什么? 不是什么? 特点 组件 主要类 流程概述 spring-pf4j 思考 功能模块化 我对pf4j的封装和使用demo GitHub - chlInGithub/pf4jDemo: pf4j demo 是什么? 开源轻量级的插件框架。通过插件…...
怎么将pdf文件免费转为扫描件
推荐两个工具,也算是给自己记一下 1、手机:扫描全能王APP 太好使了,可以直接拍照并转换为扫描件 不开会员的话会出现水印,因为我都是自己用或者交作业就没开 支持读取相册,一次一张、多张都可以 如果不想要水印也…...
vue+nodejs校园二手物品交易市场网站_xa1i4
。为满足如今日益复杂的管理需求,各类管理系统程序也在不断改进。本课题所设计的校园二手交易市场,使用vue框架,Mysql数据库、nodejs语言进行开发,它的优点代码不能从浏览器查看,保密性非常好,比其他的管理…...
Barra模型因子的构建及应用系列六之Book-to-Price因子
一、摘要 在前期的Barra模型系列文章中,我们构建了Size因子、Beta因子、Momentum因子、Residual Volatility因子和NonLinear Size因子,并分别创建了对应的单因子策略,其中Size因子和NonLinear Siz因子具有很强的收益能力。本节文章将在该系列…...
【c语言习题】使用链表解决约瑟夫问题
创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c语言系列专栏:c语言之路重点知识整合 &#x…...
JVM之类的初始化与类加载机制
类的初始化 clinit 初始化阶段就是执行类构造器方法clinit的过程。此方法不需定义,是javac编译器自动收集类中的所有类变量的赋值动作和静态代码块中的语句合并而来。构造器方法中指令按语句在源文件中出现的顺序执行。clinit不同于类的构造器。(关联:…...
面试专题:java 多线程(1)----synchronized关键字相关问答
在java 多线程 面试中最多问题1.悲观锁和乐观锁;2.synchronized和lock的区别;3.可重入锁和非可重入锁的区别;4.多线程是解决什么问题的;5.线程池解决什么问题的;6.线程池原理;7.线程池使用注意事项…...
VMware SD-WAN 5.2 发布 - 软件定义的 WAN
VMware SD-WAN 5.2 发布 - 软件定义的 WAN SD-WAN 解决方案的领导者 请访问原文链接:https://sysin.org/blog/vmware-sd-wan-5/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 产品概述 软件定义的 WAN (SD-WAN)…...
Oracle+11g+RAC+PSU_EAM(2)
2.15 解压安装介质 在获取开篇1.2节中提到的安装介质如下: [rootebsrac1 ~]# ls -l -rw-r–r– 1 root root 1358454646 Apr 20 16:22 p13390677_112040_Linux-x86-64_1of7.zip -rw-r–r– 1 root root 1142195302 Apr 20 16:29 p13390677_112040_Linux-x86-64_…...
智能出行 驱动未来|2023 开放原子全球开源峰会 CARSMOS 开源智能出行生态年会即将启幕
由开放原子开源基金会主办,元遨 / CARSMOS 开源智能出行项目组协办,深信科创、Futurewei Technologies、Open Motors、北极雄芯等单位共同承办的 2023 开放原子全球开源峰会 “CARSMOS 开源智能出行生态年会” 将于 6 月 12 日在北京经开区北人亦创国际会…...
Linux:centos:周期性计划任务管理《crontab》
crontab常用基础属性 -e 编辑计划任务 -l 查看计划任务 -r 删除计划任务 -u 指定用户的计划任务 首先创建一个名为test的用户名 crontab时间规定 格式:分钟 小时 日期 月份 星期 命令 分钟-- 0-59整数 小时 -- 0-23整数 日期 -- 1--31 整数 月份 -- 1-12 整数 星期…...
克拉默法则证明(Cramer‘s Rule)
若 n 个方程 n 个未知量构成的非齐次线性方程组: { a 11 x 1 a 12 x 2 . . . a 1 n x n b 1 a 21 x 1 a 22 x 2 . . . a 2 n x n b 2 . . . . . . a n 1 x 1 a n 2 x 2 . . . a n n x n b n \begin{equation*} \begin{cases} a_{11}x_{1} a_ {12}x_{2}…...
【接口防刷】处理方案
【接口防刷】 欢迎使用【接口防刷】常见的处理方案访问次数和频率限制验证码校验登录校验机制数据交互加密异常监测机制附录 欢迎使用【接口防刷】常见的处理方案 接口防刷处理方案是指为了防止恶意攻击或非法数据采集,采取一系列技术措施来保护接口数据的安全和完…...
安装Linux-SUSE操作系统
文章目录 一、安装Linux-SUSE系统1、环境准备2、SUSE 镜像的下载2.1、下载企业服务器2.2、ARM和桌面的ISO 3、安装SUSE4、配置本地 yum 源5、SUSE常用安装命令6、在 SUSE系统上安装mysql数据库步骤:7、破解SUSE系统root密码 一、安装Linux-SUSE系统 1、环境准备 操…...
二、机器人的结构设计
1 、螺丝连接的坚固性 坚固性是机器人能顺利完成指定任务的一个重要条件,无论我们程序设计的如何完美, 如果不能保证机器人具有坚固性和稳定性,就无法保证任务的顺利完成,机器人在运行时如 果发生散架和分裂都会影响其功能的实现…...
UITableView学习笔记
看TableView的资料其实已经蛮久了,一直想写点儿东西,却总是因为各种原因拖延,今天晚上有时间静下心来记录一些最近学习的TableView的知识。下面进入正题,UITableView堪称UIKit里面最复杂的一个控件了,使用起来不算难&a…...
Nginx反向代理与负载均衡
简介 Nginx 是一款高性能、轻量级的 Web 服务器软件,常用于反向代理和负载均衡。以下是 Nginx 反向代理和负载均衡的基本原理和实现方式 1、反向代理 当客户端请求访问一个 Web 服务器时,首先会发送请求到 Nginx,然后 Nginx 将请求转…...
Delaunay三角剖分学习笔记
文章目录 Delaunay三角剖分学习笔记1 Voronoi \text{Voronoi} Voronoi图1.1 定义与性质 2 三角剖分2.1 定义与性质2.2 质量(quality)评定标准 3 Delaunay三角剖分3.1 定义3.2 准则与性质 4 Delaunay三角剖分算法4.1 Bowyer-Watson算法4.1.1 算法步骤:4.1.2 算法伪代…...
@Resource和@Autowired的区别
1.相同点 Resource和Autowired这两个注解的作用都是在Spring生态里面去实现Bean的依赖注入 2.不同点 2.1 Autowired 首先,Autowired是Spring里面提供的一个注解,默认是根据类型来实现Bean的依赖注入。 Autowired注解里面有一个required属性默认值是t…...
FOC算法中SIMULINK常用模块解析:从坐标变换到SVPWM(实践指南)
1. FOC算法与SIMULINK模块概述 第一次接触FOC(磁场定向控制)算法时,我被那些复杂的坐标变换搞得晕头转向。直到在SIMULINK里亲手搭建了完整的控制环路,才真正理解每个模块的作用。FOC算法的核心思想,简单来说就是把三相…...
三步掌握HiGHS线性优化求解器:从入门到实战
三步掌握HiGHS线性优化求解器:从入门到实战 【免费下载链接】HiGHS Linear optimization software 项目地址: https://gitcode.com/GitHub_Trending/hi/HiGHS 在数据分析与决策优化领域,如何高效解决资源分配、生产计划等线性规划问题一直是核心挑…...
(ubuntu黑屏)Z890M + U7 265KF + RTX 5070 Ti 安装 Ubuntu 22.04.5 实战记录(网卡 + 显卡驱动全解)
本文记录了在技嘉 Z890M Intel Core Ultra 7 265KF RTX 5070 Ti 新平台上,成功安装 Ubuntu 22.04.5 并解决网卡、显卡驱动问题的完整过程,适合同类配置参考。一、硬件环境组件型号主板技嘉 Z890M 小雕(带 WiFi)CPUIntel Core Ul…...
Audio Pixel Studio实操案例:教育行业课件配音自动化+教学音频素材分离
Audio Pixel Studio实操案例:教育行业课件配音自动化教学音频素材分离 1. 教育音频处理的痛点与解决方案 1.1 教育行业的音频需求现状 教育工作者在日常教学中面临着大量音频处理需求: 课件配音需要专业播音员水准教学视频需要清晰的人声与背景音乐分…...
低资源部署DeepSeek-R1:苹果A17实测120 tokens/s推理速度
低资源部署DeepSeek-R1:苹果A17实测120 tokens/s推理速度 1. 模型概述 DeepSeek-R1-Distill-Qwen-1.5B是DeepSeek团队基于80万条R1推理链样本对Qwen-1.5B进行知识蒸馏得到的轻量级模型。这款"小钢炮"模型仅1.5B参数却能达到7B级模型的推理能力ÿ…...
实战配置指南:5步完成Mermaid图表工具高效部署与调优
实战配置指南:5步完成Mermaid图表工具高效部署与调优 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器,支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程…...
FireRedASR Pro应用案例:会议录音转文字,提升工作效率实测
FireRedASR Pro应用案例:会议录音转文字,提升工作效率实测 1. 会议记录痛点与解决方案 1.1 传统会议记录的效率瓶颈 在职场工作中,会议记录是一项耗时且容易出错的任务。根据调研数据显示: 普通员工平均每周花费4-6小时在会议…...
AtlasOS终极指南:专业解决Windows安装错误2502/2503的完整方案
AtlasOS终极指南:专业解决Windows安装错误2502/2503的完整方案 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trendi…...
比迪丽FLUX.1效果对比:相比SDXL,面部结构准确率提升18.7%
比迪丽FLUX.1效果对比:相比SDXL,面部结构准确率提升18.7% 1. 引言:当动漫角色遇上新一代AI绘画引擎 如果你是一位《龙珠》的粉丝,或者热衷于用AI生成动漫角色,那么“比迪丽”这个名字你一定不陌生。作为悟饭的妻子&a…...
hostapd wpa_supplicant madwifi深度解析(十)——WPS帧格式与交互流程详解
1. WPS协议基础与交互流程全景 第一次接触WPS(Wi-Fi Protected Setup)时,很多人会被它"一键连接"的便捷性吸引。但作为开发者,我们需要拨开这层简单的外衣,看看内部精妙的协议设计。WPS本质上是通过标准化的…...
