怎样在 Docker 应用程序上运行 Discord.js Bot

介绍

Discord 是一个视频、语音和文本通信平台,允许机器人根据用户命令执行自动化任务。 本文解释了怎样在 Docker 应用程序上运行 Discord.js 机器人。

1. 创建一个 Discord 应用程序

前往 Discord 开发者门户 并登录。单击 新应用 按钮。 输入应用程序名称并单击 创建. 选择 机器人 选项卡从 设置 菜单。 点击 添加机器人 然后点击 做吧!. 点击 复制 将您的机器人的令牌复制到剪贴板。 保存副本以在本指南后面使用。

2. 安装先决条件

部署一个 Ubuntu 20.04 上的 Docker 应用程序 云服务器实例来自 Vultr 市场应用程序
登录为

3. 安装依赖

安装 Node.js,这是 Discord.js 所需的 javascript 运行时。

# apt-get install nodejs -y

安装 Node Version Manager (nvm),用于更新 Node.js。 例如:

# wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

笔记: 请参见 NVM 的 github 存储库 并使用该命令获取最新的 NVM 版本。

重新启动服务器。

# reboot

重新连接到 SSH 会话。

验证 nvm 安装:

# command -v nvm

它应该返回:

nvm

将 Node.js 更新到最新版本:

# nvm install node

4. 创建 Discord 机器人

切换到您的主目录。

# cd ~

创建项目文件夹。

# mkdir discord-bot

切换到项目文件夹。

# cd discord-bot

初始化您的 Node.js 项目。

# npm init

回答问题。 保留默认值,除非您需要更改它们。

检查您的内容 package.json 文件:

# cat package.json

它应该返回如下内容:

{
  "name": "discord-bot",
  "version": "1.0.0",
  "description": "A Discord.js bot",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

对于本指南,您需要使用 npm 安装 Discord.js 库。 然后,当您向机器人添加功能时,请在 网站.

安装 Discord.js 库。

# npm install discord.js --save

--save 标志将库添加为您的依赖项 package.json 文件。

创建一个名为 index.js.

# nano index.js

将此示例代码粘贴到您的 index.js 文件。 代替 <YOUR BOT TOKEN> 使用您在第 1 部分中保存的令牌。

const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });

client.on('message', message => {
    if (message.content === 'hello') {
        message.channel.send('Hello World~!');
    }
    if (message.content === 'testbot') {
        message.channel.send("Hi! I'm up and Running~!");
    }
    if (message.content === 'ping') {
        message.channel.send('Pong~!');
    } 
})

client.once('ready', () => {
    console.log('The Discord Bot is Ready!');
})

client.login('<YOUR-BOT-TOKEN>')

Discord 机器人应该响应 hello, testbot, 和 ping 命令。

保存并退出 index.js 文件。

创建一个 Dockerfile.

# nano Dockerfile

将此粘贴到您的 Dockerfile.

FROM node:latest

# Create the bot's directory
RUN mkdir -p /usr/src/bot
WORKDIR /usr/src/bot

COPY package.json /usr/src/bot
RUN npm install

COPY . /usr/src/bot

# Start the bot.
CMD ["node", "index.js"]

保存并退出 Dockerfile.

5. 运行 Discord Bot

切换到 Discord bot 项目目录。

# cd ~/discord-bot

为 Discord 机器人构建 docker 容器。

# docker build -t discord-bot .

运行 docker 容器。

# docker run -d discord-bot

运行机器人 -d flag 以分离模式运行容器(它在后台运行)。

常见的 Docker 命令:

列出所有 docker 进程:

# docker ps

停止 docker 容器(discord bot):

# docker stop <CONTAINER ID>

重启docker容器:

# docker restart <CONTAINER ID>

你可以找到 <CONTAINER ID> 当您列出所有 Docker 进程时。

6. 邀请机器人加入 Discord 服务器

前往 Discord 开发者门户 并登录。 单击您创建的应用程序。 导航到 OAuth2 标签从 设置 菜单。 在里面 范围 部分,选择 机器人. 在里面 机器人权限 部分,选择 行政人员. 这为机器人提供了来自 Discord 服务器的管理员角色。 点击 复制 复制生成的邀请链接的按钮。 在浏览器上打开邀请链接。 选择要添加机器人的 Discord 服务器,然后单击 继续. 授权机器人并完成验证码。

Discord 机器人现已启动并运行。

更多信息

要了解有关 Discord 机器人的更多信息,请参阅以下资源:

Discord 的文档
开发者门户
Discord.js 网站
Docker 文档

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

相关阅读:

Posted in: LinuxTags: