共计 1586 个字符,预计需要花费 4 分钟才能阅读完成。
有些项目可能刚刚开始还不太稳定,并且此时更新也很频繁,所以如果想要尝鲜的话就要及时更新镜像。此时,需要一个可以监控镜像是否有更新的服务,就比如今天的主角 Diun。
Diun 在 Docker 镜像有更新时可以及时发现并通知,通知支持多种方式如 Email、Gotify 等。
搭建之前需要创建配置文件:
# 创建目录
mkdir /home/docker/diun
# 创建配置文件
cat > /home/docker/diun/diun.yml <<EOF
# 配置文件目录
db:
path: diun.db
# 调度任务
watch:
workers: 2
schedule: "0 */6 * * *"
# 第一次运行是否通知
firstCheckNotif: false
defaults:
# 监控所有 tag
watchRepo: false
# 当有新镜像或镜像有更新时通知
notifyOn:
- new
- update
providers:
docker:
watchStopped: true
watchByDefault: true
# 配置通知,需要配置成自己的
notif:
mail:
host: smtp-mail.outlook.com
port: 587
ssl: false
insecureSkipVerify: true
from: <xxx@outlook.com>
username: <xxx@outlook.com>
password: <password>
to:
- xxx@qq.com
templateTitle: '{{ .Entry.Image }} {{ if (eq .Entry.Status "new") }}已可用{{ else }}已更新{{ end }}'
templateBody: |
云平台镜像更新提醒:
**{{ .Entry.Image }}** {{ if .Entry.Image.HubLink }} ([链接]({{ .Entry.Image.HubLink }})){{ end }}
您通过 {{ .Entry.Provider }} 订阅的镜像 {{ if (eq .Entry.Status "new") }}已可用{{ else }}已更新{{ end }}
**{{ .Entry.Image.Domain }}** 镜像仓库 (由 _{{ escapeMarkdown .Meta.Hostname }}_ 主机触发)
此镜像已于 **{{ .Entry.Manifest.Created.Format "2006-01-02 15:04:05 UTC" }}** {{ if (eq .Entry.Status "new") }}创建{{ else }}更新{{ end }}
摘要为 `{{ .Entry.Manifest.Digest }}`,适用于 **{{ .Entry.Manifest.Platform }}** 平台。
需要帮助或有问题?请访问 {{ .Meta.URL }} 并留下问题。
EOF
这里需要注意的是,notif 是配置通知的地方,可以配置多种通知,参考 通知配置。
踩过的坑,当配置
workers: 10
、firstCheckNotif: true
,并且通知配置的 qq 邮箱,由于发送邮件过快,qq 邮箱的授权码直接失效了。建议通知邮件配置成其他邮件,并且 workers 不要配置太多。
弄好配置文件后,直接启动容器即可:
docker run -d \
--restart always \
--name diun \
-v /home/docker/diun/data:/data \
-v /home/docker/diun/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
效果如下:
提醒:本文发布于243天前,文中所关联的信息可能已发生改变,请知悉!
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完