在甲骨文云搭建telegram的RSS机器人–数据永久化

在甲骨文云搭建telegram的RSS机器人--数据永久化
在甲骨文云搭建telegram的rss机器人

之前写过一篇在甲骨文云搭建 Telegram RSS 机器人的教程,用的是 RSS-to-Telegram-Bot 这个项目,通过 Easypanel 部署在 Docker 容器里。

部署完之后,机器人用起来很顺手——订阅管理、RSS 推送都没问题。但有一个麻烦:每次服务器重启,所有订阅设置就全部消失了,得重新手动添加一遍。

一开始以为是机器人项目本身的问题,后来才发现——是自己在 Easypanel 上漏掉了一个关键步骤:没有设置 Volume 挂载(持久化存储)

原因分析:Docker 容器的无状态性

这是 Docker 的一个基础特性,但对新手来说很容易踩坑。

Docker 容器本身是无状态的。容器内部产生的数据(比如 RSS-to-Telegram-Bot 的订阅数据库文件),默认只保存在容器的可写层里。一旦容器停止、重启或被重建,这些数据就会随之消失。

要让数据在重启后依然保留,必须通过 Volume(卷)Bind Mount(绑定挂载),把容器内的数据目录映射到宿主机的持久化存储上。

Easypanel 提供了图形界面来配置这一点,但如果当初没注意到,部署时很容易就跳过了这一步。

解决方法:在 Easypanel 中添加 Volume 挂载

操作不复杂,进入 Easypanel 对应的 App,找到「挂载(Mounts)」设置页面,按以下步骤添加一个 Volume Mount:

步骤

  1. 在 Easypanel 控制台,进入对应的 App(本例为 rss2tele
  2. 找到 Mounts(挂载) 部分
  3. 点击「添加 Volume 挂载」
  4. 填写以下配置:
字段填写内容
Volume 名称rss2tele(自定义,建议与 App 同名方便识别)
容器内路径/app/config
  1. 点击保存,然后重新部署(Redeploy)该 App

配置正确后,挂载项会出现在列表中。

スクリーンショット
挂载选项
为什么是 /app/config
RSS-to-Telegram-Bot 把订阅数据、配置文件等需要持久化的内容,默认存放在容器内的 /app/config 目录。把这个目录挂载到 Volume 上,就能保证数据在容器重启后依然完好保留。

验证效果

配置完成并重新部署后,可以这样验证:

  1. 在 Telegram 机器人里重新添加几个 RSS 订阅(/sub 命令)
  2. 在 Easypanel 中手动重启该 App(或等服务器自然重启)
  3. 重启完成后,给机器人发送 /list 命令,确认订阅列表依然存在

如果订阅还在,问题就彻底解决了。

总结:Easypanel 部署 Docker App 的注意事项

检查项说明
✅ 环境变量TOKENMANAGER 是否正确填写
✅ Volume 挂载数据目录是否已挂载到持久化 Volume(本文的重点)
✅ 重新部署修改挂载配置后必须 Redeploy 才会生效

这个问题说大不大,说小也不小——表面上机器人运行完全正常,只有重启之后才会暴露出来,很容易让人误以为是代码或配置的问题,实际上只是少做了挂载 Volume 这一步。

分享或订阅:
🧡 喜欢我的内容?欢迎点击 订阅 RSS Feed 获取最新文章更新。