使用Python编写的DiscordBot在GoogleComputeEngine上的Docker容器中运行
首先
本文将DiscordBot转化为Dockerfile,并将其运行在Google Compute Engine上的Debian 9操作系统中,详细说明了此过程的步骤。文章并未涉及如何创建DiscordBot。
上次我们创建了一个DiscordBot,并在GCP的Debian上正常安装和运行了Python。接下来是它的续篇。我们将创建一个Discord Bot并将其部署到Google Compute Engine。
作業的过程
-
- 创建用于启动Bot的Dockerfile
-
- 在GCP上的Debian9上安装docker
- 将Dockerfile和源代码完整地部署到Debian9上并运行
创建Dockerfile
我打算创建这种目录结构。
在src文件夹下有一个 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"]
安装Docker在Debian9上。
我們將在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
$
最后
我已经将一式上传到GitHub了。如果你方便的话,请随意查看。
以前我們需要手動執行Python指令來啟動並終止,但透過容器化後,部署變得較為輕鬆。
我也想創建一個可以進入語音頻道的機器人,但需要先查一下它能做些什麼才能更好地了解。