LoginSignup
1
0

More than 5 years have passed since last update.

Pythonで作ったDiscordBotをGoogleComputeEngine上のdockerで動かす

Posted at

はじめに

この記事は、DiscordBotをDockerfile化してGoogleComputeEngine上のDebian9に乗せ、
動かすための手順をまとめたものです。DiscordBotの作り方は説明していません。

前回はDiscordBotを作成し、GCPのDebianに普通にpythonをインストールして実行しました。
それの続きです。
Discord Botを作ってGoogleComputeEngineに配置

作業の流れ

  1. Botを起動するためのDockerfileの作成
  2. GCP上のDebian9にdockerをインストール
  3. Dockerfileとソース一式をDebian9に配置して実行

Dockerfileの作成

こんなかんじのディレクトリ構成にしようと思います。
src以下にはDiscordBotが置いてあります。DiscordBotを使用するためのDiscord側の設定などは割愛します。

<root>
│  Dockerfile
│  README.md
└─src
    │  config.ini
    │  main.py
    └─img
            daijobu.jpg
            sonance.png
            sonano.png

main.pyを実行するDockerfileを作ります。

FROM python:3.6

# 必要なライブラリをインストール
RUN pip install discord
RUN pip install jaconv

# ソースをコンテナ内にコピー
COPY ./src/ ./src/

# 作業フォルダを設定しコマンド実行
WORKDIR ./src/
CMD ["python", "main.py"]

Debian9にdockerをインストール

GCP上に作成したDebian9にdockerをインストールします。
公式サイトの手順を参考に、以下を順番に実行。

$ sudo apt-get update
$ sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     software-properties-common
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce

コンテナの配置と実行

無事にdockerのインストールが終わったら、コンテナを配置して実行してみましょう。
今回は/home/amama/docker/wobbuffetbotにファイル一式を置きます。私はWinSCPでコピっちゃいました。
ファイルを置いたらファイルを置いたディレクトリに移動し、以下のコマンドでDockerfileをビルド。名前はamama/wobbuffetbotにします。最後の.はDockerfileがあるディレクトリ(カレントディレクトリ)です。

$ sudo docker build -t amama/wobbuffetbot .
(中略)
Successfully built fe2a3b8411c5
Successfully tagged amama/wobbuffetbot:latest
$ 

無事ビルドが終わったら、イメージの一覧を見てみましょう。
イメージamama/wobbuffetbotが出来ています。

$ sudo docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
amama/wobbuffetbot   latest              fe2a3b8411c5        3 minutes ago       926MB
python               3.6                 bb8fb36e5fd8        4 days ago          912MB

起動してみましょう。
コンテナの名前は適当にbotとします。

$ sudo docker run -d --name bot amama/wobbuffetbot
4605c2c15e9931b306cb8d81229a53b6e63e4429a84d49de9b9414941e375a29
$ 

実行できました。
Discordで何か発言すれば、結果が返ってきます。
image.png

おわりに

一式、GitHubに上げました。よろしければどうぞ。

これまでは手動でpythonのコマンド叩いて起動したり、終わったらKillする必要がありましたが、
コンテナ化によってデプロイがだいぶ楽になりました。
ボイスチャンネルに入れるBotも作ってみたいけど、何が出来るのか調べてみないとよくわかりませんね。。。

1
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
1
0