# 使用 Docker 运行 Bot 实例
通过 Docker 和我们封装好的镜像来部署 Bot 实例有许多好处,你不必自行安装配置程序运行环境,如 Node.js、第三方 NPM 包等,尤其是想要迁移 Bot 实例到不同环境的另一台设备上运行时,这种方式会为你节省了许多时间精力。
# 如何在我的机器上通过 Docker 部署运行
在开始之前,请确保你已经安装好了 Docker。
# 1、拉取镜像
我们在 Docker Hub 上发布了封装好的镜像 siubeng/danmaqua-telegrambot,你可以通过以下命令拉取镜像的最新版:
docker pull siubeng/danmaqua-telegrambot
# 2、准备数据目录
在运行容器之前,我们在宿主机环境创建一个文件夹,用于存放 Bot 数据(包含弹幕转发规则、管理员列表、运行日志等)。
# 在 /home/fython/data 创建一个文件夹 dmq-tgbot 准备存放 Bot 数据
mkdir -p /home/fython/data/dmq-tgbot
# 3、部署运行
接下来可以执行这一条命令(注:太长了所以分成多行)部署容器并运行,请注意修改命令里的参数:
docker run -d \
--name dmq-tgbot \
-v /home/fython/data/dmq-tgbot:/usr/src/dmq-bot/data \
-e DMQ_BOT_TOKEN=[你的 Bot Token] \
-e DMQ_BOT_PROXY=[Bot API HTTP 代理] \
-e DMQ_BOT_ADMINS=[Bot 管理员列表] \
siubeng/danmaqua-telegrambot
# 参数说明介绍
-d
代表执行后让容器在后台运行。--name dmq-tgbot
代表容器命名为dmq-tgbot
,选一个好记的名字以便后续操作。-v /home/fython/data/dmq-tgbot:/usr/src/dmq-bot/data
代表将宿主机的/home/fython/data/dmq-tgbot
挂载在容器中的 Bot 数据目录/usr/src/dmq-bot/data
上。-e XXXX=YYYY
代表传入环境变量XXXX
,值设定为YYYY
,这里有三个需要修改的变量:DMQ_BOT_TOKEN
:从@BotFather
中获取的 Telegram Bot Token。DMQ_BOT_PROXY
:连接到 Telegram 服务器使用的 HTTP 代理,如果不需要请留空。例:DMQ_BOT_PROXY=http://127.0.0.1:8080
。注:如果想使用宿主机上的代理,最简单的方式是添加--network host
参数,但会带来一些副作用,具体请自学 Docker。DMQ_BOT_ADMINS
:允许控制 Bot 的管理员 Telegram ID 列表,并不是 username,你可以通过第三方客户端或者 ID 查询机器人获得自己的 ID,不可留空!多个 ID 间用逗号隔开。例:DMQ_BOT_ADMINS=12345,56789
siubeng/danmaqua-telegrambot
代表使用我们封装好的镜像。
# 例子
假设我的 Token 是 123456:AQUA
,不需要通过代理连接 Telegram API,管理员有两位 ID 分别是 445
和 148
,则部署容器的命令参数应修改为:
docker run -d \
--name dmq-tgbot \
-v /home/fython/data/dmq-tgbot:/usr/src/dmq-bot/data \
-e DMQ_BOT_TOKEN=123456:AQUA \
-e DMQ_BOT_ADMINS=445,148 \
siubeng/danmaqua-telegrambot
# 如何在 PaaS 平台上部署运行
请参照具体平台如何部署 Docker 容器的教程。