AutoDocker 钉钉通知配置:卡片上点一下,容器自己更新
摘要
钉钉是 AutoDocker 的第三个通知渠道。这篇从建应用到搭卡片模板,七步配完:钉钉开放平台建应用、加机器人走 Stream 模式(不用公网 IP、不用备案)、开两项权限、卡片平台拖组件建模板、发版本、拉群取会话 ID、发测试卡片验回调。最后附上实际收到更新卡片、点按钮、容器重建完成的完整过程。
广告以上为推广链接,通过它们购买我会获得少量佣金,你的价格不受影响。

前言
AutoDocker 是个 Docker 镜像更新监测工具:定时巡检本机容器的镜像,发现新版本就往手机上推一张卡片,点一下按钮,它按原配置重建容器,挂载、端口、网络、环境变量一个不丢,失败还能自动回滚。容器与镜像分开管理,没用的镜像可以一键清掉。
前两篇写过飞书和 Telegram 的配置,这篇讲钉钉。钉钉用 Stream 长连接接收按钮回调,不需要公网地址,也不用域名备案和公网 IP,这一点比飞书那套省事。
项目地址:https://github.com/haihaipypy/autodocker
一、钉钉配置流程
本应用用 Stream 长连接接收按钮回调,所以整个流程里不需要你准备任何公网服务。
1. 新建应用
打开钉钉开放平台,走「应用开发 → 钉钉应用」→ 创建应用。建好后在「凭证与基础信息」里复制 Client ID 与 Client Secret。

把这两个值填进 AutoDocker 左侧面板,点右边的「检测连通性」验一下,通了会自动保存并拉起长连接。

注意:左侧还有一个与「钉钉应用」并列的「机器人」入口,那个是旧模型,钉钉官方已说明「将逐渐退出历史舞台,不要用它来创建」。本流程需要的卡片模板关联、权限、版本发布都在「钉钉应用」详情页里,从应用入口建才能一条路走完。
2. 添加机器人
在刚建好的应用里,左侧「应用能力」→ 机器人 → 机器人配置。
配置项 | 填写内容 |
|---|---|
机器人名称 |
|
机器人简介 |
|
机器人描述 |
|
消息接收模式 | Stream |
机器人图标和消息预览图用下面这两张:


填完大概是这样:

3. 开权限
左侧「权限管理」,搜到下面两项并开通:
Card.Instance.Write(互动卡片实例写权限)qyapi_robot_sendmsg(企业内机器人发送消息)

4. 建卡片模板
打开卡片平台,新建模板,按下个章节「模板怎么搭」拖好组件,发布,然后复制模板 ID(形如 xxxx-xxxx.schema)填到左边。

5. 发布应用版本
左侧「版本管理与发布」→ 创建版本 → 发布。
改了权限、机器人或模板却不发布新版本,等于什么都没改。 现象是配置看着全对,发卡片一直报权限或模板错误。

6. 拉群并取会话 ID
钉钉群里 → 群设置 → 智能群助手 → 添加机器人,选你刚建的那个。

然后在群里 @它说一句话。

回来点左边「读取会话」,列表里会冒出这个群,点一下即自动填入并保存。

二、模板怎么搭
钉钉不允许用代码定义卡片样式,只能自己在平台上搭模板、设变量。操作不复杂,但参数一个都不能错,写错了卡片发出去就是一片空白。
1. 新建三个变量
变量名
title,变量类型:普通文本变量名
status,变量类型:普通文本变量名
body,变量类型:富文本

2. 添加文本组件
从组件库拖 2 个基础文本和 1 个富文本组件到卡片里。

3. 设置组件内容
三个组件的内容分别填变量引用:${title}、${status}、body。输入框里敲一个美元符号就会弹出变量列表,点一下就插进去了。此时没有实际数据,画布上看不到东西是正常的。

4. 添加按钮
在卡片上放三个单个按钮组件,文案分别填 立即更新、稍后提醒、忽略本版本。每个按钮都去「事件」里设「回传请求」,参数如下:
立即更新 →
{"action":"update"}稍后提醒 →
{"action":"snooze"}忽略本版本 →
{"action":"ignore"}

对美观度有要求就自己调样式,只要参数没错就行,改完保存模板。
三、测试回调
1. 发一张测试卡片
点「发送钉钉测试卡片」,页面会挂起等待回调。

2. 群里点一下按钮
钉钉群会收到一张测试卡片。这张卡片用的是同一个模板,点上面任意一个按钮都算「回调验证通过」。

3. 看到回调结果
卡片原地变成「回调已收到」,说明按钮点得动、服务端也收得到。

应用页面同时提示按钮链路正常:

这一版加了通知开关,链路一通就自动打开。

点按钮没反应时按顺序查:先点「检测连通性」,它只验凭据和出网,一次能把这两件事说清;连通之后还收不到卡片,再看模板有没有发布、按钮的回传参数有没有配对。卡片收到了但点了没变化,多半是第 5 步的版本没发布。
四、日常使用
1. 收到新版提醒
巡检发现有镜像更新,钉钉群里会收到卡片,容器、镜像、当前版本、可用版本都列在上面。

2. 点「立即更新」
NAS 收到指令开始拉镜像、重建容器,卡片原地变成进度。

3. 卡片自动更新结果
拉完、重建完,状态回到同一张卡片上,不用回网页、不用登服务器。

结尾
这篇只讲钉钉。其他通知渠道的配置,看下面两篇: