网站建设推广软文,网站空间一般多大,wordpress 获取分类子分类,浦东网站建设公司什么是 DIUN ? Docker Image Update Notifier 是一个用 Go 编写的 CLI 应用程序#xff0c;可作为单个可执行文件和 Docker 映像交付#xff0c;用于当 Docker 映像在 Docker registry中更新时接收通知。 和老苏之前介绍过的 watchtower 不同#xff0c;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 errorgomail: could not send email 1: 554 sender is rejected: 0 imagedocker.io/crazymax/diun:latest要么是 errorEOF 错误懒得再换邮箱折腾了
diun | Wed, 24 May 2023 19:14:06 CST ERR Mail notification failed errorEOF imagedocker.io/crazymax/diun:latestDIUN 还支持不少消息类型老苏最后选择了用 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 }} releasedtemplateBody: |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、watchtowerGlancesNetdata 、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 TZAsia/Shanghai \-e LOG_LEVELinfo \-e LOG_JSONfalse \crazymax/diun:latest \servedocker-compose 安装
将下面的内容保存为 docker-compose.yml 文件
version: 3.5services:diun:image: crazymax/diun:latestcontainer_name: diunrestart: alwaysvolumes:- ./data:/data- ./diun.yml:/diun.yml:ro- /var/run/docker.sock:/var/run/docker.sockenvironment:- TZAsia/Shanghai- LOG_LEVELinfo- LOG_JSONfalsecommand: 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/