Dockerを使ってDiscord.jsのBotを動かす
DiscordのBotを構築したことがある人なら、環境設定やライブラリのバージョンコントロールに問題を感じたことがあるかもしれません。Dockerを使用することで、これらの問題を治め、アプリを簡単に配布しやすくなります。今回は、Dockerを使ってDiscord.jsのBotを動かす方法を紹介します。
この記事の目的
- Dockerイメージを使ってDiscord.jsのBotを動かす
- Node.js環境を構築するためにDockerfileを作成
- Botのコードを実行するためのコンテナ設定
実装ステップ
1. プロジェクトファイルの準備
以下の構成のディレクトリを用意します。
my-discord-bot/
├── bot.js
├── package.json
└── Dockerfile
bot.js
こちらには簡単なDiscord.jsのBotコードを記載します。
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.once('ready', () => {
console.log('Ready!');
});
client.on('messageCreate', message => {
if (message.content === 'ping') {
message.reply('pong');
}
});
client.login('YOUR_BOT_TOKEN');
package.json
プロジェクトの依存関係を定義します。
{
"name": "my-discord-bot",
"version": "1.0.0",
"main": "bot.js",
"scripts": {
"start": "node bot.js"
},
"dependencies": {
"discord.js": "^14.0.0"
}
}
2. Dockerfileの作成
Dockerイメージを作成するためのDockerfileを用意します。
# ベースイメージにNode.jsを使用
FROM node:18
# アプリケーションディレクトリをコンテナにコピー
WORKDIR /usr/src/app
# package.jsonをコピー
COPY package.json ./
# 依存関係をインストール
RUN npm install
# コードをコピー
COPY . .
# Botを実行
CMD [ "npm", "start" ]
3. Dockerイメージの作成と実行
下記のコマンドを実行します。
- Dockerイメージの作成
docker build -t my-discord-bot .
- Dockerコンテナの起動
docker run -d my-discord-bot
4. 動作確認
ボットがオンラインになり、チャンネル内でping
と打ち込むと、pong
と復答するはずです。
おわりに
Dockerを使用することで、構築した環境を別のマシンでも再現できるので、開発やテストが滿切になります。DockerとDiscord.jsを利用して、自分のボットをさらに充実させましょう。