docker-rss:容器更新的RSS订阅源

简介

什么是 docker-rss ?

docker-rss 是一个用 Go 语言编写的服务器,能通过 RSS Feed 通知 Docker 镜像的更新。

主要特点

  • 功能:提供 Docker 镜像更新的 RSS Feed,便于用户跟踪重要软件的更新,特别适合用于个人实验室和工作流程。
  • 工作原理:通过挂载 Docker/var/run/docker.sock 套接字,监测正在运行的容器,并调度从 Docker Hub 扫描镜像更新。
  • 部署方式:用户可以使用 Docker Compose 部署,配置包括更新时间表和时区。
  • 使用:启动后,用户可以将 /feed 地址添加到喜欢的 RSS 阅读器中,以获取更新通知。

能检测镜像更新的项目很多,但 docker-rss 是目前唯一能通过 RSS 摘要通知图像更新的。服务器启动后,将其作为 feed 添加到您喜欢的 RSS 阅读器中即可。

网络要求

群晖需要能访问 https://hub.docker.com 站点,才能检查是否有更新,否则容器启动后会自动关闭

安装

与容器相关的应用,都需要绑定挂载 /var/run/docker.sock ,包括我们之前安装的 portainerwatchtowerGlancesNetdata 等。

什么是 /var/run/docker.sock ?

/var/run/docker.sock 是 Docker API 的主要入口,简单地说,它是 Docker 守护进程(Docker daemon)默认监听的 Unix 域套接字(Unix domain socket),容器中的进程可以通过它与 Docker 守护进程进行通信。

title

图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd

但是群晖的 Docker 管理器并不支持挂载 /var/run/docker.sock 文件,所以这次我们需用命令行来安装

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
# 运行容器
docker run -d \
--restart unless-stopped \
--name docker-rss \
-p 8083:8083 \
-v /var/run/docker.sock:/var/run/docker.sock \
-e TZ=Asia/Shanghai \
-e UPDATE_SCHEDULE="0 * * * *" \
vector450/docker-rss:latest

环境变量的简单说明

可变
TZ 设置容器的时区
UPDATE_SCHEDULE 常规 cron 表达式,用于控制检查频率

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3'

services:
docker-rss:
image: vector450/docker-rss:latest
container_name: docker-rss
ports:
- "8083:8083"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=Asia/Shanghai
- UPDATE_SCHEDULE=0 * * * *

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 docker-rss 
mkdir -p /volume1/docker/docker-rss

# 进入 docker-rss 目录
cd /volume1/docker/docker-rss

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

老苏的小机器上安装了很多容器,所以检查可能需要的时间会稍微长一点

从日志看,似乎不支持 ghcr.io 的镜像,所以会看到类似这样的提示: image ghcr.io/harishdeivanayagam/rowfill is not available on dockerhub. likely local image.

在浏览器中输入 http://群晖IP:8083/feed 就能看到更新的提示

RSS 中 新建订阅,老苏用了 Nextflux。订阅地址:http://群晖IP:8083/feed

文章传送门:Miniflux的高颜值客户端Nextflux

订阅成功之后

然后你可以根据需要,对容器做更新

参考文档

thebigbone/docker-rss: an rss feed for docker image updates
地址:https://github.com/thebigbone/docker-rss