使用Python编写的DiscordBot在GoogleComputeEngine上的Docker容器中运行

首先

本文将DiscordBot转化为Dockerfile,并将其运行在Google Compute Engine上的Debian 9操作系统中,详细说明了此过程的步骤。文章并未涉及如何创建DiscordBot。

上次我们创建了一个DiscordBot,并在GCP的Debian上正常安装和运行了Python。接下来是它的续篇。我们将创建一个Discord Bot并将其部署到Google Compute Engine。

作業的过程

    1. 创建用于启动Bot的Dockerfile

 

    1. 在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
$ 
image.png

最后

我已经将一式上传到GitHub了。如果你方便的话,请随意查看。

以前我們需要手動執行Python指令來啟動並終止,但透過容器化後,部署變得較為輕鬆。
我也想創建一個可以進入語音頻道的機器人,但需要先查一下它能做些什麼才能更好地了解。

广告
将在 10 秒后关闭
bannerAds