dockcheck + Server酱:Docker 镜像更新推送到微信

效果:dockcheck 检测到有 Docker 容器可以更新镜像时,微信收到提醒

前置条件

配置步骤

dockcheck 内置了 Apprise 通知模板,支持通过 schan:// 协议直接对接 Server酱;也可以绕过 Apprise,直接用 curl 调用 API。

方法一:使用 Apprise 模板(推荐)

  1. 复制仓库中的通知模板脚本:

    cp notify_templates/notify_apprise.sh ./notify_apprise.sh
    
  2. 在脚本中将 Apprise 目标 URL 配置为 Server酱协议地址:

    schan://你的SENDKEY
    

    schan:// 是 Apprise 中 Server酱的专用协议,底层对接 https://sctapi.ftqq.com/你的SENDKEY.send,支持 SCT 开头的 SendKey。

  3. 运行前可先在命令行自测连通性:

    pip install apprise && apprise -t "测试标题" -b "测试正文" "schan://你的SENDKEY"
    

方法二:直接使用 curl

如果不想安装 Apprise,可在 dockcheck 的自定义通知脚本中直接调用 Server酱 API:

curl -sS -X POST "https://sctapi.ftqq.com/你的SENDKEY.send" \
  --data-urlencode "title=有容器可更新" \
  --data-urlencode "desp=详情见 dockcheck 输出"

完整示例

以下是一个可直接在 Shell 中运行或嵌入到 dockcheck 自定义通知逻辑中的 curl 推送命令:

#!/bin/bash
# 将下方替换为你的 SendKey
SENDKEY="你的SENDKEY"

# 获取 dockcheck 输出并推送
CHECK_RESULT=$(dockcheck 2>&1)

curl -sS -X POST "https://sctapi.ftqq.com/${SENDKEY}.send" \
  --data-urlencode "title=【Docker更新】有容器可更新" \
  --data-urlencode "desp=${CHECK_RESULT}"

常见问题

dockcheck 推送消耗 Server酱额度吗? 免费用户每日 5 条;订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。dockcheck 一般仅在有容器可更新时才推送,频率很低。

配置后没收到微信通知? 请先用命令行 apprise -vv 或直接 curl 测试,确认 SendKey 和网络正常。也可参考 常见问题与排查

推送频率有限制吗? API 每分钟上限 50 次,建议合理设置 dockcheck 的定时运行周期,避免频繁触发。

相关集成

懒人方案:把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手,它就会替你完成 Server酱 的接入:

请帮我把 Server酱 微信通知接入到我当前的项目/工具中:
1. API:POST https://sctapi.ftqq.com/{SendKey}.send,参数 title(必填,不能含换行)、desp(正文,支持 Markdown,可选);成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头,则改用 https://{uid}.push.ft07.com/send/{SendKey}.send,uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取;如果没有,提醒我到 https://sct.ftqq.com 免费获取(每天 5 条额度)。
4. 安全要求:不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定:任务结束发 1 条结果摘要即可,批量任务合并成一条,不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。