Telegram-interactive-bot-master.zip


Telegram 互动机器人 Docker 部署小白教程

本教程将手把手带你使用 Docker 部署一个 Telegram 互动机器人。Docker 可以让我们免去配置 Python 环境的麻烦,实现一键启动,非常方便。

部署目标

  • 在你的服务器上,通过 Docker 运行一个 7x24 小时不间断的 Telegram 机器人。

  • 学会如何正确配置、启动、查看和管理这个机器人。

准备工作

在开始之前,请确保你已经拥有:

  1. 一台 Linux 服务器:比如阿里云、腾讯云、Vultr、RackNerd 等任何一台 VPS 都可以。

  2. 安装好 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
      
  3. 一个 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 的文件中。我们需要创建并编辑这个文件。

  1. 创建配置文件:项目里有一个模板文件 .env.example,我们直接复制它来创建我们的配置文件。

    
    cp .env.example .env
    
  2. 编辑配置文件:使用 nano 文本编辑器打开 .env 文件。

    
    nano .env
    
  3. 填写你的配置:在 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:确保双引号是成对出现的! 有开头就必须有结尾。

  4. 保存并退出

    • 按 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),这代表你的机器人已经成功在后台运行了!

第五步:验证和管理

机器人已经在跑了,怎么知道它工作是否正常呢?

  1. 检查容器状态

    
    docker ps
    

    如果你能看到一行包含 telegram-interactive-bot 的信息,并且 STATUS 是 Up ...,那就说明它正在健康运行。

  2. 查看实时日志(排错必备)

    
    docker logs -f telegram-interactive-bot
    
    • -f 参数可以持续输出新日志。

    • 如果一切正常,你应该会看到 Scheduler started 和 Application started,并且不会有任何 WARNING 或 ERROR

    • 如果机器人没反应,第一时间来看日志!我们之前遇到的 .env 语法错误就会在这里显示为警告。

    按 Ctrl + C 可以退出日志查看,这*不会**停止机器人。

  3. 最终测试

    去 Telegram 找到你的机器人,给它发个消息,看看它会不会回复你预设的 WELCOME_MESSAGE。如果会,那么恭喜你,部署成功!

日常管理命令

  • 停止机器人: docker stop telegram-interactive-bot

  • 启动已停止的机器人: docker start telegram-interactive-bot

  • 重启机器人: docker restart telegram-interactive-bot

  • 删除机器人容器 (更新或重装时用): docker rm telegram-interactive-bot


教程结束!希望这份保姆级的教程能帮助你顺利部署。享受你的新机器人吧!

Telegram-interactive-bot-master.zip