-
Notifications
You must be signed in to change notification settings - Fork 1.6k
使用 Docker Compose 部署(同时使用 Mirai 和 本项目)
这个教程适合第一次使用 Mirai 的用户。
本教程将会教你如何安装 Docker、 Docker-compose,以及使用本项目提供的 docker-compose.yaml
启动 Mirai + 本项目。
Docker 是一种应用容器引擎。它允许开发者(比如我)把一个应用所需要的容器打包,然后在其他计算机(比如你)上运行。
在开始前, 我们需要先安装 Docker (装在你要跑机器人的电脑/服务器上)。
Linux 用户可执行:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
Windows 用户可以在这里下载: https://docs.docker.com/desktop/install/windows-install/
一个完整的服务可能由多个应用组成(比如说咱们现在这个),一个个启动它会比较麻烦,所以我们使用 Docker Compose 来帮助我们管理。
Linux 用户: 可以选择通过 pip 安装
sudo pip install docker-compose
也可以下载安装
# 下载
sudo curl -L https://github.com/docker/compose/releases/download/v2.14.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 如果上面那个命令下载不动,用下面这个
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/v2.14.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 给权限
sudo chmod +x /usr/local/bin/docker-compose
Windows 用户: 自带
找个空旷的位置(空的文件夹),新建一个名为 docker-compose.yaml
的文件,然后把这里面的内容丢进去。
因为 MCL 的交互似乎有点问题,所以接下来我们需要先启动 Mirai,登录好你的机器人QQ,配置自动登录。
docker-compose run -rm mirai
当你看见终端出现
2022-12-10 04:30:19 I/MCL Addon: iTXTech MCL Version: 2.1.2-61c8bd8
2022-12-10 04:30:19 W/MCL Addon: iTXTech Soyuz 未安装,Soyuz MCL Handler 特性已禁用
2022-12-10 04:30:19 I/main: 3 plugin(s) enabled.
2022-12-10 04:30:19 I/main: Auto-login 2956927341
2022-12-10 04:30:20 W/stderr: ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
>
的时候,意味着 Mirai 启动完毕。 接下来执行命令登录机器人 QQ。
login <机器人QQ号> <机器人密码> ANDROID_PAD
然后根据提示进行即可。
当机器人账号登录成功以后,执行
autologin add <机器人QQ号> <机器人密码> MD5
autologin setConfig <机器人QQ号> protocol ANDROID_PAD
让 Mirai 可以自动登录。
编辑 mirai/config/net.mamoe.mirai-api-http/setting.yml
,填入以下内容:
adapters:
- http
- ws
debug: true
enableVerify: true
verifyKey: CHANGEME # 这个是可以改的,改了之后要记得,下面要用
singleMode: false
cacheSize: 4096
persistenceFactory: 'built-in'
adapterSettings:
## HTTP 服务的主机, 端口和跨域设置
http:
host: mirai
port: 8080
cors: ["*"]
## Websocket 服务的主机, 端口和事件同步ID设置
ws:
host: mirai
port: 8080
reservedSyncId: -1
复制一份 config.example.json
, 命名为 config.json
,然后打开编辑。
编辑的教程和这里一样。
只不过有些地方这么填:
"api_key": "CHANGEME", // 上面改了的化这里也记得改哈
"http_url": "http://mirai:8080", // mirai-http-api 中的 http 回调地址
"ws_url": "http://mirai:8080" // mirai-http-api 中的 ws 回调地址
接下来就可以启动整个项目了。 你可以用
docker-compose up
来启动。 如果没问题的话,可以 Ctrl + C 退出来,然后换成
docker-compose up -d
在后台启动。
如果你发现你的机器人不回你了,看看是 mirai 那边出问题了,还是 chatgpt 那边出问题了。
docker-compose logs mirai
可以看见 Mirai 的运行输出。
docker-compose logs chatgpt
可以看见本项目 chatgpt 的运行输出。
如果 Mirai 出现问题(比如说需要验证,或者重新登录等),你可以这么做:
- 关闭当前正在运行的 Mirai
docker-compose stop mirai
- 手动启动 Mirai
docker-compose run mirai
然后参考步骤 4 搞定它。
搞定之后 Ctrl + C
退出来, 然后执行
docker-compose restart
重启就行了。