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

go-cqhttp 在 Docker 里早就部署好了,由于没有搭建 qsign 签名服务器,所以迟迟不敢上线。今天终于搞定了在 Docker 下安装 qsign 签名服务器了。这次用的docker市场里找到的镜像,下次找时间制作一个自己的镜像。

1 拉取和运行镜像:xzhouqd/qsign:8.9.63

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 里主签名服务器地址填为:127.0.0.1:8080,即可
    在这里插入图片描述

  • device.json
    在这里插入图片描述

3 在宿主机里其他容器上连接 qsign 服务器

容器之间相互调用,就可以用 docker-compose 脚本来实现,将两个容器编排在一个文件里,以虚拟网络link的方式即可实现容器之间进行网络互访。
编辑 docker-compos.yml 文件,内容如下:

version: "3.5" # 使用版本 3.5

services: # 服务列表
  cqhttp: # go-cqhttp 服务
    container_name: cqhttp # 指定容器名称
    image: go-cqhttp-alpine:0.0.1 # 使用的镜像名称
    networks: # 本容器加入的网络,可以是多个
      - my_network
    links: # 连接到其他的容器的列表,此处表示 cqhttp 容器会放翁 qsign 容器
      - qsign

  qsign: # qsign 服务
    container_name: qsign # 指定容器名称
    image: xzhouqd/qsign:8.9.63 # 使用的镜像名称
    ports: # 镜像端口列表
      - 8080:8080
    environment: # 环境变量,会传递到容器里
      ANDROID_ID: xxxxxx # 填入你想使用的ID,可以是昵称、手机号啥的,都可以
    networks: # 本容器加入的网络,可以是多个
      - my_network
networks:
  my_network:
    name: my_network

4 应用效果

5 扩展

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

4.2 将dockerhub里的镜像存储到本地

以便以后加载使用,避免出现上传用户删除镜像导致以后找不到该镜像的情况

参考文章(致谢)

Linux服务器下 签名服务器+Mirai部署 详细教程
使用qsign解决gocq启动code45报错 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/519275.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Win10文件夹共享(有密码的安全共享)(SMB协议共享)

前言 局域网内(无安全问题,比如自己家里wifi)无密码访问,参考之前的操作视频 【电脑文件全平台共享、播放器推荐】手机、电视、平板播放硬盘中的音、视频资源 下面讲解公共网络如办公室网络、咖啡厅网络等等环境下带密码的安全…

云备份day02

📟作者主页:慢热的陕西人 🌴专栏链接:C云备份项目 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 主要内容介绍了第三方库jsoncpp和bundle库的使用 文章目录 云备…

代码随想录算法训练营第三十一天| 理论基础、LeetCode 455.分发饼干、376. 摆动序列、53. 最大子序和

一、理论基础 文章讲解:https://programmercarl.com/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 1.贪心的定义 贪心的本质是选择每一阶段的局部最优解,从而达到全局最优解。例如,有一堆钞票&#xff0c…

MySQL常见锁探究

MySQL常见锁探究 1. 各种锁类型1.1 全局锁1.2 表级锁1.2.1 表锁1.2.2 元数据锁(MDL)1.2.3 意向锁1.2.4 AUTO-INC 锁 1.3 行级锁1.3.1 Record Lock1.3.2 Gap Lock1.3.3 Next-Key Lock 2. MySQL是如何加锁的?2.1 什么 SQL 语句会加行级锁&#…

WPS 不登录无法使用基本功能的解决办法

使用wps时,常常有个比较让人烦恼的事,在不登录的情况下,新建或者打开文档时,wps不让你使用其基本的功能,如设置字体等,相关界面变成灰色,这时Wps提示用户登录注册或登录,但我又不想登…

喜讯 ChatGPT 3.5 免登录|免注册就可以使用了

https://chat.openai.com/ 直接访问openai 官网直接使用,当然还是要魔法的,不用再去用别人二次开发的,还有次数限制,还有开会员😅才能用的。😀试用啦一下,基本秒回答,能力也是在线的…

深入浅出 -- 系统架构之微服务架构常见的六种设计模式

面向服务的架构(SOA) 面向服务的架构(SOA)是一种设计方法,也是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的…

软件工程导论

软件工程选择题复习笔记 一、软件工程学概述 用户使用不当、硬件可靠性差、对软件的错误认识属于软件危机的表现,不是原因软件危机,1960年以来,软件工程1968提出软件工程着重于建造一个软件系统 八个阶段可以归纳为计划(定义)阶段&#xf…

一次java.lang.NullPointerException的排查之旅

一次java.lang.NullPointerException的排查之旅 问题由来问题分析问题处理 问题由来 最近在项目中遇到了一个比较奇怪的java.lang.NullPointerException,就是说在自己的本地环境中,功能正常,运行无异常。但是测试环境点击同样的功能时却总是…

每日一练 寻找两个正序数组的中间数

题目参上,以下是解题思路: 首先,我们应该想到的一种方法是把两数组合并为一个整体的数组,然后返回其中位数即可。那么我们如何合并两数组呢?我们可以用归并排序,设置上下两指针,不断遍历返回较…

字节新作:图像生成质量超越DiT

🌟每日更新最新高质量论文,关注我,时刻关注最新大模型进展。🌟 📌 元数据概览: 标题:Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction作者&#xff1a…

2012年认证杯SPSSPRO杯数学建模C题(第二阶段)碎片化趋势下的奥运会商业模式全过程文档及程序

2012年认证杯SPSSPRO杯数学建模 C题 碎片化趋势下的奥运会商业模式 原题再现: 从 1984 年的美国洛杉矶奥运会开始,奥运会就不在成为一个“非卖品”,它在向观众诠释更高更快更强的体育精神的同时,也在攫取着巨大的商业价值&#…

LeetCode-热题100:21. 合并两个有序链表

题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入: l1 [1,2,4], l2 [1,3,4] 输出: [1,1,2,3,4,4] 示例 2: 输入: l1 [], l2 [] 输出…

什么是ICMP协议,如何防护ICMP攻击

一.什么是ICMP ICMP(Internet Control Message Protocol)是互联网控制报文协议,是TCP/IP协议族的一个子协议。它主要用于在IP网络中传递控制信息和错误消息,是IP协议的补充。ICMP协议是一种无连接协议,它不需要建立…

如何锁定鼠标光标在水平、垂直或45度对角线模式下移动 - 鼠标水平垂直移动锁定器简易教程

在我们进行精细工作例如如创建图标和图形设计时,通常需要我们对鼠标移动进行精确控制。一旦向左或向右轻微移动,都可能导致设计出错。若出现不必要的错误,我们极有可能不得不重新开始,这会令人感到非常沮丧。这种情况下&#xff0…

NIO基础知识

在学习Netty之前先要学习一下NIO相关的知识,因为Netty是基于NIO搭建的一套网络编程框架。 一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从…

SSM实战项目——哈哈音乐(三)文件服务器模块开发

1、创建模块 创建一个子模块(hami-fie),里面不写任何代码,专门用于文件上传的服务器 在hami-file的webapp下创建上传文件资源的文件夹,并引入资源(图片、音频) 2、pom.xml主配置文件中引入文件…

提升提测质量之研测共建

提升提测质量之研测共建 简介 你是否也有同样的困惑?跟进的需求,就在提测前一秒,被告知不能如期提测了,研测计划被打乱;提测的功能,犹如遇到不好的购物体验,缺斤短两,与prd预期不符…

Elasticsearch:我们如何演化处理二进制文档格式

作者:来自 Elastic Sean Story 从二进制文件中提取内容是一个常见的用例。一些 PDF 文件可能非常庞大 — 考虑到几 GB 甚至更多。Elastic 在处理此类文档方面已经取得了长足的进步,今天,我们很高兴地介绍我们的新工具 —— 数据提取服务&…

AopContext.currentProxy() 的代理对象错误(未被更新)问题

背景: 原来在springAOP的用法中,只有代理的类才会被切入,我们在controller层调用service的方法的时候,是可以被切入的,但是如果我们在service层 A方法中,调用B方法,切点切的是B方法,…