docker安装、调试qsign签名服务器

打印 上一主题 下一主题

主题 889|帖子 889|积分 2667

早前已经将 go-cqhttp 成功部署到 Docker 环境中,但鉴于qsign签名服务器尚未构建,所以一直没有将 go-cqhttp 上线测试。目前已顺利完成 Docker 内 qsign 服务器的安装工作,暂时采取 Docker 市场提供的第三方镜像作为办理方案。将来计划抽空自制 qsign 镜像,以实现更精致的定制化控制。
  1 拉取和运行镜像:xzhouqd/qsign:8.9.63

  1. docker run -d --restart=always --name qsign -p 8080:8080 -e ANDROID_ID=xxxxxxx xzhouqd/qsign:8.9.63
复制代码
只必要这一条命令,整个 qsign 服务器就运行起来了。参数说明:


  • -d 后台运行
  • –restart=always 服务自动重启
  • –name asign 给容器取的名字叫做:qsign
  • -p 8080:8080 端口映射,可以通过宿主机的 8080 端口访问容器内部的 8080 端口
  • e ANDROID_ID=xxxxxxxx 环境变量,将ANDROID_ID 参数通报给容器
  • xzhouqd/qsign:8.9.63 安装用到的镜像,自动从dockerhub里拉取
2 在宿主机或局域网内毗连 qsign 服务器

如果你的宿主机上(不是在 docker 里)恰好运行了一个 go-cqhttp 服务,将该服务的设置文件修改后,即可毗连并使用该签名服务器。修改如下:


  • config.yml
    将 sign-servers 里主签名服务器地址填为:宿主机IP地址,端标语为 8080,即形式为:xxx.xxx.xxx.xxx:8080,本机可直接使用 127.0.0.1:8080 即可。

           图1 修改 config.yml 文件   
  • device.json
请将 android_id 填入你的 ANDROID_ID, 可以根据本身的喜好填写即可。

   图2 修改 device.json 文件  
3 在宿主机里其他容器上毗连 qsign 服务器

容器之间相互调用,就可以用 docker-compose 脚本来实现,将两个容器编排在一个文件里,以假造网络link的方式即可实现容器之间进行网络互访。
编辑 docker-compos.yml 文件,内容如下:
  1. version: "3.5" # 使用版本 3.5
  2. services: # 服务列表
  3.   cqhttp: # go-cqhttp 服务
  4.     container_name: cqhttp # 指定容器名称
  5.     image: go-cqhttp-alpine:0.0.1 # 使用的镜像名称
  6.     networks: # 本容器加入的网络,可以是多个
  7.       - my_network
  8.     links: # 连接到其他的容器的列表,此处表示 cqhttp 容器会放翁 qsign 容器
  9.       - qsign
  10.   qsign: # qsign 服务
  11.     container_name: qsign # 指定容器名称
  12.     image: xzhouqd/qsign:8.9.63 # 使用的镜像名称
  13.     ports: # 镜像端口列表
  14.       - 8080:8080
  15.     environment: # 环境变量,会传递到容器里
  16.       ANDROID_ID: xxxxxx # 填入你想使用的ID,可以是昵称、手机号啥的,都可以
  17.     networks: # 本容器加入的网络,可以是多个
  18.       - my_network
  19. networks:
  20.   my_network:
  21.     name: my_network
复制代码
在 docker-compos.yml 文件地点目次下,使用终端输入命令:
  1. docker-compose up -d
复制代码
4 应用效果


   图3 应用效果-1  
上图中,红框内的内容没明确是什么意思,不知道是不是 go-cqhttp 的 bug,但好像不影响使用。

   图4 应用效果-2  
从上图可以看到,收到了群里发来的消息,但目前只能“听”,不能“说”。
5 扩展

5.1 go-cqhttp 和 qsign 是分开还是合在一个docker里

一样平常发起将go-cqhttp和qsign分开部署在差异的Docker容器中,以保持体系的模块化、易维护性、资源隔离和故障隔离上风,更关键尚有就是容易扩充和分布式部署,满足负载均衡的必要。
只有当两个服务间存在极为紧密的关联,资源需求高度一致,且通信效率要求极高时,才考虑将其归并部署在同一容器内。实际决议应依据具体项目需求、资源状态和运维计谋来确定。
此处我们决定采取分离的方式。
5.2 将dockerhub里的镜像存储到当地

对于比较难找的镜像,为了便于以后加载使用,制止出现上传用户删除镜像导致以后找不到该镜像的环境,所以必要将镜像生存到当地。


  • 生存镜像
    使用 docker save 命令:
  1. docker save -o xzhouqd_qsign_8.9.63.tar xzhouqd/qsign:8.9.63
复制代码
生存的文件名为:xzhouqd_qsign_8.9.63.tar,文件还是不小的,到达500多兆。


  • 加载镜像
    使用 docker load 命令:
  1. docker load -i xzhouqd_qsign_8.9.63.tar
复制代码
使用 load 加载后,镜像就会出现在docker 镜像列表里了。
参考文章(致谢)

Linux服务器下 签名服务器+Mirai部署 具体教程
使用qsign办理gocq启动code45报错 - 知乎

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表