Telegram-interactive-bot-master.zip
Telegram 互动机器人 Docker 部署小白教程
本教程将手把手带你使用 Docker 部署一个 Telegram 互动机器人。Docker 可以让我们免去配置 Python 环境的麻烦,实现一键启动,非常方便。
部署目标
在你的服务器上,通过 Docker 运行一个 7x24 小时不间断的 Telegram 机器人。
学会如何正确配置、启动、查看和管理这个机器人。
准备工作
在开始之前,请确保你已经拥有:
一台 Linux 服务器:比如阿里云、腾讯云、Vultr、RackNerd 等任何一台 VPS 都可以。
安装好 Docker 和 Git:这是部署的基础。如果你的服务器上还没有,可以运行以下命令安装(以 CentOS/Ubuntu 为例):
安装 Git:
# CentOS sudo yum install -y git # Ubuntu/Debian sudo apt-get update && sudo apt-get install -y git
安装 Docker (推荐使用官方脚本):
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
安装完成后,启动 Docker 服务:
sudo systemctl start docker sudo systemctl enable docker
一个 Telegram 机器人:你需要从 Telegram 的 @BotFather 那里获取两样东西:
BOT_TOKEN (机器人令牌)
ADMIN_USER_IDS (你的 Telegram 用户 ID)
部署步骤
第一步:下载项目代码
首先,我们需要把机器人的代码从 GitHub 下载到你的服务器上。
# 克隆项目仓库
git clone https://github.com/MiHaKun/Telegram-interactive-bot.git
# 进入项目目录,之后的所有操作都在这个目录里进行
cd Telegram-interactive-bot
第二步:配置机器人(最关键的一步!)
机器人的所有配置都存储在一个名为 .env 的文件中。我们需要创建并编辑这个文件。
创建配置文件:项目里有一个模板文件 .env.example,我们直接复制它来创建我们的配置文件。
cp .env.example .env
编辑配置文件:使用 nano 文本编辑器打开 .env 文件。
nano .env
填写你的配置:在 nano 编辑器里,你会看到模板内容。你需要修改以下几项:
BOT_TOKEN: 换成你从 @BotFather 获取的 Token。
ADMIN_USER_IDS: 换成你的 Telegram 用户 ID。
ADMIN_GROUP_ID: 换成你的管理员频道的 ID。
WELCOME_MESSAGE: 可以自定义欢迎语。
⚠️ 重点注意:新手最容易出错的地方!
python-dotenv 库对 .env 文件的语法要求很严格。请务必遵守以下规则,否则机器人会无法加载配置,导致启动后没反应!
规则1:格式为 KEY=VALUE,等号两边不要有空格。
规则2:如果你的值(VALUE)包含空格、换行或特殊字符,必须用双引号 " 包裹起来。
规则3:确保双引号是成对出现的! 有开头就必须有结尾。
保存并退出:
按 Ctrl + O (是字母O,不是数字0),然后按 Enter 键保存。
按 Ctrl + X 退出编辑器。
第三步:构建 Docker 镜像
配置好了,现在我们让 Docker 根据项目里的 Dockerfile 文件,把机器人程序和它的运行环境打包成一个“镜像”。
# -t tgibot:latest 的意思是给这个镜像取个名字叫 tgibot,版本是 latest
# 注意命令最后有一个点 ".",表示使用当前目录的 Dockerfile
docker build -t tgibot:latest .
这个过程会下载一些依赖,需要几分钟,请耐心等待。看到 Successfully tagged tgibot:latest 就表示成功了。
第四步:运行机器人(后台模式)
这是启动机器人的最后一步。为了让机器人能7x24小时运行,并且不影响我们继续使用服务器,我们必须使用 后台模式 -d) 来运行。
请使用以下这条“完全体”命令来启动:
docker run -d --restart always --name telegram-interactive-bot -v "$PWD":/app tgibot:latest
我们来分解一下这个命令,让你知道它有多强大:
- docker run: 运行一个容器。
-d: Detached 模式*,让容器在后台运行,这是保证长期运行的关键!
--restart always: 自动重启*。如果服务器重启或者容器意外崩溃,Docker会自动把它拉起来。
- --name telegram-interactive-bot: 给容器起个好记的名字,方便我们管理。
-v "$PWD":/app: 挂载目录*。这是个魔法,它把你服务器上当前目录(包含.env文件)链接到容器内部的 /app 目录。这样,你以后修改 .env 文件,只需重启容器即可生效,无需重新构建镜像。
运行后,如果没报错,它会输出一长串字符(容器ID),这代表你的机器人已经成功在后台运行了!
第五步:验证和管理
机器人已经在跑了,怎么知道它工作是否正常呢?
检查容器状态:
docker ps
如果你能看到一行包含 telegram-interactive-bot 的信息,并且 STATUS 是 Up ...,那就说明它正在健康运行。
查看实时日志(排错必备):
docker logs -f telegram-interactive-bot
-f 参数可以持续输出新日志。
如果一切正常,你应该会看到 Scheduler started 和 Application started,并且不会有任何 WARNING 或 ERROR。
如果机器人没反应,第一时间来看日志!我们之前遇到的 .env 语法错误就会在这里显示为警告。
按 Ctrl + C 可以退出日志查看,这*不会**停止机器人。
最终测试:
去 Telegram 找到你的机器人,给它发个消息,看看它会不会回复你预设的 WELCOME_MESSAGE。如果会,那么恭喜你,部署成功!
日常管理命令
停止机器人: docker stop telegram-interactive-bot
启动已停止的机器人: docker start telegram-interactive-bot
重启机器人: docker restart telegram-interactive-bot
删除机器人容器 (更新或重装时用): docker rm telegram-interactive-bot
教程结束!希望这份保姆级的教程能帮助你顺利部署。享受你的新机器人吧!