说明:DIUN,是一款基于 Go 编写的 CLI 应用程序,DIUN (Docker Image Update Notifier),字面意思:Docker 镜像更新通知器。DIUN 与 WatchTower 的区别在于 DIUN 专注于监控 Docker 注册表中镜像更新的通知功能,而 WatchTower 监控镜像的更新,同时支持自动更新镜像和容器。

Docker-Image-Update-Notifier.png

当一些项目包含 Dockerfile 文件被修改或项目被重构时,盲目使用 WatchTower 进行自动更新可能会导致容器无法正常使用。DIUN 只通知不更新,便于我们主动查看项目的更新日志了解项目更改内容,确认是否有必要做一些修改及调整,以确保在我们更新容器后它能正常被使用。

项目地址: Github - DIUN

通过 docker-compose 部署

1、安装 Docker 和 Docker Compose

# 安装 Docker
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

# 安装 Docker Compose
curl -L https://github.com/docker/compose/releases/download/v2.9.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 赋予 docker-compose 执行权限
chmod +x /usr/local/bin/docker-compose

2、创建 yml文件

mkdir diun
cd diun
nano docker-compose.yml

编辑 docker-compose.yml 文件

---
version: "3.5"

services:
  diun:
    image: crazymax/diun:latest
    container_name: diun
    command: serve
    volumes:
      - "./data:/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_PROVIDERS_DOCKER=true"
    labels:
      - "diun.enable=true"
    restart: always

任务计划

配置 Diun 监控计划,需要在 docker-compose.yml 文件定义变量环境 DIUN_WATCH_SCHEDULE,这里设置为每 6 小时监测一次本地 Docker 实例中所有正在运行的容器。(如果需要,请查看CRON 表达式格式)。

通知服务

Diun 支持对接到 Gotify、Mail、Slack、Telegram 等通知服务,这里我选择使用 Telegram Bot 来推送更新通知。创建一个 Telegram Bot 获取 TOKENCHATID 后,并在docker-compose.yml文件中添加以下环境变量:

- DIUN_NOTIF_TELEGRAM_TOKEN=
- DIUN_NOTIF_TELEGRAM_CHATIDS= #can be more than one (comma separated)
- DIUN_NOTIF_TELEGRAM_TEMPLATEBODY=

更多详细信息,参考官方文档,包括templateBody可以根据需要修改默认值。如果您在多台机器上运行 Diun,强烈推荐

3、启动容器

docker-compose.yml 文件编辑完成后,运行以下命令启动 Diun:

docker-compose up -d

测试通知:在运行状态,请使用以下命令进行测试。

docker-compose exec diun diun notif test

如果一切顺利,Telegram 将收到来自 Diun 的新通知。

4、更新容器

后续安装升级到最新版本,请执行以下命令,

docker-compose pull
docker-compose up -d

相关推荐

  1. 群晖 Synology 部署 Bitwarden 密码管理器
  2. 在群晖 Synology 上搭建 Bark 消息推送服务器
  3. Dozzle - docker 容器实时日志查看器
  4. Send - 自建临时文件分享平台
  5. WallaBag - 开源网络书签、稍后阅读工具
  6. 使用 Docker Buildx 构建多架构多平台 Docker 镜像
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/5151.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。