0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ZEN Study (旧 N予備校) プログラミングコースAdvent Calendar 2024

Day 21

Dockerで、discord.jsのbotを動かす

Last updated at Posted at 2024-12-20

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イメージの作成と実行

下記のコマンドを実行します。

  1. Dockerイメージの作成
docker build -t my-discord-bot .
  1. Dockerコンテナの起動
docker run -d my-discord-bot

4. 動作確認

ボットがオンラインになり、チャンネル内でpingと打ち込むと、pongと復答するはずです。

おわりに

Dockerを使用することで、構築した環境を別のマシンでも再現できるので、開発やテストが滿切になります。DockerとDiscord.jsを利用して、自分のボットをさらに充実させましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?