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?

はじめてのアドベントカレンダーAdvent Calendar 2024

Day 25

Dockerを活用したDiscord.py Bot開発&デプロイ

Last updated at Posted at 2024-12-25

この記事では、PythonでDiscord Botを開発する際に便利な「discord.py」を使用し、そのBotをDockerコンテナで実行する方法を解説します。Dockerを活用することで、環境構築が簡単になり、どこでも同じ環境で動作させることができます。

必要なツール

以下のツールをインストールしておいてください:

  • Python (3.8以上推奨)
  • Docker
  • Git (オプション)

1. Discord Botの基本セットアップ

1.1 Discord Botアカウントの作成

  1. Discord Developer Portal (https://discord.com/developers/applications) にアクセス。
  2. 新しいアプリケーションを作成。
  3. Botタブで「Botを作成」ボタンを押す。
  4. トークンを取得して安全に保存。

1.2 必要なPythonライブラリをインストール

プロジェクトディレクトリを作成し、以下の手順を実行します。

mkdir discord-bot
cd discord-bot
python -m venv venv
source venv/bin/activate  # Windowsでは `venv\Scripts\activate`
pip install discord.py

2. Dockerfileの作成

プロジェクトディレクトリにDockerfileを作成します。以下はシンプルな例です。

# ベースイメージ
FROM python:3.9-slim

# 作業ディレクトリを設定
WORKDIR /app

# 依存関係をコピー
COPY requirements.txt requirements.txt

# 必要なライブラリをインストール
RUN pip install --no-cache-dir -r requirements.txt

# ボットのコードをコピー
COPY . .

# ボットを実行
CMD ["python", "bot.py"]

3. 必要ファイルの準備

3.1 bot.py

以下は簡単なBotの例です。

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.messages = True
bot = commands.Bot(command_prefix="!", intents=intents)

@bot.event
async def on_ready():
    print(f'Bot logged in as {bot.user}')

@bot.command()
async def hello(ctx):
    await ctx.send('Hello, world!')

bot.run('YOUR_TOKEN_HERE')

3.2 requirements.txt

discord.py

4. Dockerイメージのビルドと実行

以下の手順でDockerイメージをビルドし、Botを実行します。

# Dockerイメージをビルド
docker build -t discord-bot .

# コンテナを実行
docker run -d --name discord-bot discord-bot

5. トラブルシューティング

Botが起動しない場合

  • Dockerコンテナのログを確認:
    docker logs discord-bot
    
  • トークンが正しいか確認。
  • 必要な権限がBotに付与されているか確認。

依存関係の問題

  • requirements.txtが正しく設定されているか確認。
  • Dockerイメージを再ビルド:
    docker build --no-cache -t discord-bot .
    

これで、Discord BotをDockerコンテナで動作させる準備が整いました。どの環境でも同じように動作するので、ぜひプロジェクトに活用してください!

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?