docker-deploy.md
May 2, 2022 · View on GitHub
快速上手
启动前置环境
首先拉取当前仓库,然后在项目根目录依次执行以下步骤。
启动 docker 容器
docker-compose up(启动依赖环境)
准备登录环境
首先执行 docker ps,找到 qqrobot_app 容器的 CONTAINER ID,e.g:
~/Documents/MyCode/Node/QQRobot (docker-deploy*) » docker ps superman@B-P1W3Q05P-2227
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c6463f34c700 qqrobot_app "/bin/bash" 4 hours ago Up 2 hours 0.0.0.0:9999->9999/tcp qqrobot_app_1
ca6005536b2a redis "docker-entrypoint.s…" 5 hours ago Up 2 hours 0.0.0.0:6379->6379/tcp qqrobot_redis_1
1d4df79defeb mysql:5.7 "docker-entrypoint.s…" 24 hours ago Up 2 hours 0.0.0.0:3306->3306/tcp, 33060/tcp qqrobot_mysql_1
这个时候我们可以执行以下命令进入容器:
docker exec -it c6463f34c700 /bin/bash
进入容器之后执行 . /etc/profile,这个是为了支持中文日志能力,如果不执行这个中文日志就会乱码。
接着执行 ./mcl 命令,等待相关配置加载完成,末尾会出现一个 >,这个时候我们就可以执行登录操作了。
登录
输入 /login 指令进行登录,然后看日志中可能会出现 Captcha link,这个时候只需要复制链接到浏览器打开。
> /login QQ账号 QQ密码
滑动验证:

然后滑动滑块验证完之后,会有一个请求,把这个请求返回值里的 ticket 复制,接着打开控制台,粘贴到终端即可。

滑动验证完之后,可能会出现要求进一步验证的操作,同样的,复制链接,然后浏览器打开,扫码验证完毕就好了。
扫码验证:

然后手机扫码通过后再回个车应该就能看到:Login successful,这样就登录完成啦。
启动 QQRobot 项目
操作至此,你的前置最重要的一些步骤就完成了,接下来就是简单的启动项目就好了:
npm inpm run ps:gennpm run ps:pushnpm run start
完事!
常见错误
如果你执行 ./mcl 遇到了如下的错误:
Compiled method (c1) 32751 3078 3 jdk.internal.math.FormattedFloatingDecimal::valueOf (30 bytes)
total in heap [0x00000040143dbb10,0x00000040143dbf90] = 1152
relocation [0x00000040143dbc70,0x00000040143dbcc0] = 80
main code [0x00000040143dbcc0,0x00000040143dbe80] = 448
stub code [0x00000040143dbe80,0x00000040143dbed0] = 80
metadata [0x00000040143dbed0,0x00000040143dbed8] = 8
scopes data [0x00000040143dbed8,0x00000040143dbf28] = 80
scopes pcs [0x00000040143dbf28,0x00000040143dbf88] = 96
dependencies [0x00000040143dbf88,0x00000040143dbf90] = 8
Compiled method (c2) 32752 2886 4 java.util.regex.Pattern$BranchConn::match (11 bytes)
total in heap [0x000000401ba3a410,0x000000401ba3a748] = 824
relocation [0x000000401ba3a570,0x000000401ba3a598] = 40
main code [0x000000401ba3a5a0,0x000000401ba3a660] = 192
stub code [0x000000401ba3a660,0x000000401ba3a688] = 40
metadata [0x000000401ba3a688,0x000000401ba3a698] = 16
scopes data [0x000000401ba3a698,0x000000401ba3a6c8] = 48
scopes pcs [0x000000401ba3a6c8,0x000000401ba3a718] = 80
dependencies [0x000000401ba3a718,0x000000401ba3a720] = 8
handler table [0x000000401ba3a720,0x000000401ba3a738] = 24
nul chk table [0x000000401ba3a738,0x000000401ba3a748] = 16
Compiled method (c1) 32756 3028 ! 3 sun.security.ssl.SSLSocketInputRecord::readFully (75 bytes)
total in heap [0x0000004014a8de90,0x0000004014a8eb00] = 3184
relocation [0x0000004014a8dff0,0x0000004014a8e0b0] = 192
main code [0x0000004014a8e0c0,0x0000004014a8e6e0] = 1568
stub code [0x0000004014a8e6e0,0x0000004014a8e760] = 128
metadata [0x0000004014a8e760,0x0000004014a8e770] = 16
scopes data [0x0000004014a8e770,0x0000004014a8e860] = 240
scopes pcs [0x0000004014a8e860,0x0000004014a8e9c0] = 352
dependencies [0x0000004014a8e9c0,0x0000004014a8e9c8] = 8
handler table [0x0000004014a8e9c8,0x0000004014a8ead0] = 264
nul chk table [0x0000004014a8ead0,0x0000004014a8eb00] = 48
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
qemu: uncaught target signal 6 (Aborted) - core dumped
./mcl: 行 3: 131 已放弃 $JAVA_BINARY -jar mcl.jar $*
你只需要执行一下 ./mcl --update-package net.mamoe:mirai-api-http --channel stable-v2 --type plugin ,然后再重新执行 ./mcl启动即可。