docker image for cqhttp-mirai

参考

https://github.com/yyuueexxiinngg/cqhttp-mirai

github地址

https://github.com/LQBing/docker-cqhttp-mirai

镜像仓库

海外: lqbing/cqhttp-mirai

docker pull lqbing/cqhttp-mirai

国内: registry.cn-hongkong.aliyuncs.com/lqbing/cqhttp-mirai

docker pull registry.cn-hongkong.aliyuncs.com/lqbing/cqhttp-mirai

使用说明

PS: 第一次使用往往会要求输入验证码,有时候还会给个网址复制链接然后手机QQ扫描二维码验证。所以第一次不能直接挂后台,运行需要docker run -it运行来通过验证程序。

有两种方式启动:

1 使用.env文件配置QQ账号密码等信息快速运行,但是只能单账号运行

2 挂载配置文件的方式运行(多个用户的情况下用环境变量无法满足需求,可以用挂载配置文件的方式达到目的)

使用.env文件带入参数运行

创建.env,然后修改其中内容

cp .env.example .env
vi .env

第一次运行,运行下面命令,然后输入login 123456789 password(替换自己的用户名密码)(第一次使用往往会要求输入验证码,有时候还会给个网址复制链接然后手机QQ扫描二维码验证。所以第一次不能直接挂后台,运行需要docker run -it运行来通过验证程序。)

docker run --rm -it --name cqhttp-mirai --env-file .env -v $(pwd)/tmp:/tmp  --entrypoint="/bin/bash" lqbing/cqhttp-mirai run.sh

PS:QQ账号在当前设备第一次运行需要输入验证码(device.json文件不能丢,腾讯会根据macAddress判断是否要重新输入验证码)。如果几次不对(反正我肉眼凡胎没几次对的)会在提示在/tmp目录下生成验证码图片,这时候挂载出来的/tmp目录就有用了。之后一些账号可能会再提示一长串的连接地址,复制出来浏览器打开,然后手机同账号QQ扫描二维码通过验证后再回车才能完成登录过程。

上面的步骤完成,并且屏幕有输出QQ的聊天记录的话就意味着验证通过了,这时候ctrl+c退出,下面有两个选择,一个是docker run的方式启动,一种是docker-compose的方式启动:

docker run

完成了上述步骤之后如果要直接挂到后台运行的话可以运行下面的命令(必须带-t,否则会出现账号文件载入失败问题):

docker run -t -d --name cqhttp-mirai --restart=always --env-file .env  lqbing/cqhttp-mirai

docker-compose

如果是要用docker-compose启动的话可以用docker-compose up -d命令启动。docker-compose.yml文件内容如下:

version: "3"
services:
  cqhttp-mirai:
    image: lqbing/cqhttp-mirai
    restart: always
    env_file: .env
    stdin_open: true
    tty: true

挂载配置文件的方式运行

PS:注意config.txt,setting.yml,device.json三个文件是否存在,如果不存在可能造成运行问题。

创建配置文件:

if [ ! -f "config.txt" ]; then
  cp config.txt.example config.txt
fi
if [ ! -f "setting.yml" ]; then
  cp setting.yml.example setting.yml
fi
if [ ! -f "device.json" ]; then
  cp device.json.example device.json
fi

然后配置文件具体怎么修改参考配置文件说明

第一次运行,运行下面的命令,然后输入login 123456789 password(替换自己的用户名密码)(第一次使用往往会要求输入验证码,有时候还会给个网址复制链接然后手机QQ扫描二维码验证。所以第一次不能直接挂后台,运行需要docker run -it运行来通过验证程序。):

docker run --rm -it --name cqhttp-mirai -v $(pwd)/config.txt:/workdir/config.txt -v $(pwd)/setting.yml:/workdir/plugins/setting.yml -v $(pwd)/device.json:/workdir/device.json -v $(pwd)/tmp:/tmp --entrypoint="/bin/bash" lqbing/cqhttp-mirai run.sh

PS:QQ账号在当前设备第一次运行需要输入验证码(device.json文件不能丢,腾讯会根据macAddress判断是否要重新输入验证码)。如果几次不对(反正我肉眼凡胎没几次对的)会在提示在/tmp目录下生成验证码图片,这时候挂载出来的/tmp目录就有用了。之后一些账号可能会再提示一长串的连接地址,复制出来浏览器打开,然后手机同账号QQ扫描二维码通过验证后再回车才能完成登录过程。

上面的步骤完成,并且屏幕有输出QQ的聊天记录的话就意味着验证通过了,这时候ctrl+c退出,下面有两个选择,一个是docker run的方式启动,一种是docker-compose的方式启动:

Docker run

如果要用docker run启动的话运行下面命令即可:

docker run -t -d --name cqhttp-mirai -v $(pwd)/config.txt:/workdir/config.txt -v $(pwd)/setting.yml:/workdir/plugins/setting.yml -v $(pwd)/device.json:/workdir/device.json -v $(pwd)/tmp:/tmp lqbing/cqhttp-mirai

Docker-compose

如果要用docker-compose启动的话可以用docker-compose up -d命令启动。docker-compose.yml文件内容如下:

version: "3"
services:
  cqhttp-mirai:
    image: lqbing/cqhttp-mirai
    restart: always
    volumes:
      - ./config.txt:/workdir/config.txt
      - ./setting.yml:/workdir/plugins/setting.yml
      - ./device.json:/workdir/device.json
    stdin_open: true
    tty: true

查看是否还活着:

docker ps -a | grep cqhttp-mirai

查看日志:

docker logs --tail 100 -f cqhttp-mirai

干掉:

docker stop cqhttp-mirai
docker rm cqhttp-mirai

配置文件说明

config.txt

用于指定登陆的QQ账号和密码以及给指定QQ发信息

login 123456789 ppaasswwdd
say 987654321 cqhttp-mirai_123456789_published!

plugins/setting.yml

用于指定信息转发给哪个bot地址(格式跟miraiOK有差异,直接使用miraiOK的配置文件会导致信息转发失败且没有报错信息)

# 要进行配置的QQ号 (Mirai支持多帐号登录, 故需要对每个帐号进行单独设置)
"1234567890":
  ws_reverse:
    - enable: true
      postMessageFormat: string
      reverseHost: 127.0.0.1
      reversePort: 9222
      reversePath: /ws
      reconnectInterval: 3000
# 详细说明请参考 https://github.com/yyuueexxiinngg/cqhttp-mirai

device.json

在正常登录后会生成。猜测是用于记录设备参数的,未验证。

构建镜像

docker build -t lqbing/cqhttp-mirai .

PS:注意如果自己运行docker run的话哪怕是-d后台运行也要加-it参数,否则会造成无法登陆的问题

Docker-compose启动

docker-compose up -d

PS: 注意docker-compose.yml中的stdin_opentty参数,否则会造成无法登陆的问题

文件源

https://github.com/yyuueexxiinngg/cqhttp-mirai/releases/download/0.2.0/cqhttp-mirai-0.2.0-fix1-embedded-all.jar