Mmx的博客中已经有了一篇Linux中用docker运行coolq的文章,但那个不支持http接口。要使用http接口的话,需要使用专用的镜像并映射更多端口。其余的参数什么的倒是一致的。
一、HTTP接口有什么用
http接口可以随时让你控制机器人发送消息,也可以使所有机器人收到的消息发送到一个后端网址。
也就是说,有了接口,咱就可以为所欲为,大大降低了开发新功能的门槛。且由于互联网是各设备联通媒介的特性,所以http接口可以做到比普通插件的更多(其实也可以定制)。比如用脚本监控某台电脑开机、使用情况并使用机器人播报等。
我想,这大概就是正经机器人和某宝买的机器人的本质区别了。
二、安装使用
更详细的图文教程与视频请参照普通coolq在docker内运行教程。那个会了这个也就会了。
当然,必须要有公网ip或端口映射。不然只能在内网调用。
配备接口的bot将占用更多内存
①安装Docker
Centos:
yum install docker
Debian/Ubuntu:
apt-get install -y docker.io
启动docker
systemctl start docker
设置开机启动
systemctl enable docker
②安装镜像
docker pull richardchien/cqhttp
③准备并启动coolq
下载最新版coolq Air(要是充了钱pro什么的也行),删除所有自带插件(有些插件在docker环境下可能导致账号异常冻结(风控),比如自带的图灵插件)。安上自己要的插件并设置好,然后上传到服务器,至于上传到哪,可以通过设定参数随便放。
然后通过命令创建coolq容器:
docker run --name=coolq --restart=always -p 8080:9000-p 5700:5700 -v /root/coolq-data:/home/user/coolq -e VNC_PASSWD=11223344 -e COOLQ_ACCOUNT=abcdefg richardchien/cqhttp
蓝色部分为可更改
参数说明:
coolq
:容器名称,可更改,用于启动、停止容器,命令为docker start/stop coolq
。创建多个机器人时使用不同容器名与端口即可。
--restart=always
:官方文档中给的是--rm
,--rm
的含义是容器停止后删除容器,而--restart=always
则表示容器停止后保留并自动运行,这样无论是重启了服务器还是重启docker,都能保证机器人的正常自动运行。
11223344
:控制面板[noVNC]的登陆密码。
8080
:控制面板[noVNC]使用的端口,国内主机应避免使用80
、443
、8080
等特殊端口。
5700
:http接口的端口,可通过访问[http://ip:5700]访问接口。
/root/coolq-data
:用于储存酷Q AIR的目录,插件目录、数据都在这里,需与上文创建的注明可修改的目录一致。
abcdefg
:机器人帐号,其值会自动填入酷Q AIR的QQ账号栏中,酷Q也会储存密码,对自动化有利,此处给的字母是不会自动填入的,因为账号应是数字的。
可选参数:
-d
:不会显示详细的调试信息,仅输出容器ID并挂起,不需要再次手动启动容器。不建议第一次开机器人时使用。
--memory
:用于限制物理内存占用,例如:--memory=200M
。
---memory-swap
:限制swap占用,值设为-1表示不限制,必须与---memory
一起使用。正常情况下当内存占用超出物理内存与swap占用限制总和时会被kill。
--oom-kill-disable
:使用后进程即使超出限制也不会被kill。
上述可选参数请注意放置位置,否则可能不会成功。
然后容器就创建成功了。如果没有加-d
参数的话,需要在确认机器人正常运行(noVNC进得去)后,按ctrl+D
结束运行然后输入docker start coolq
重新启动。
④设置接口配置文件
参考官方文档,添加一个简单的配置文件就行。
⑤机器人使用与http接口用法
管理、控制机器人可通过noVNC图形界面控制。基本和windows差不多。noVNC地址是[http://ip:8080],密码是参数中的11223344。
更多登陆coolq机器人可能遇到的问题和官方槛请参照Linux运行QQ机器人中的“连接[noVNC]”和“机器人使用”。
http接口详细用法可参照官方API文档:
Many thanks really practical. Will share site with my good friends.