docker安裝、調(diào)試qsign簽名服務(wù)器的解決方案
早前已經(jīng)將 go-cqhttp 成功部署到 Docker 環(huán)境中,但鑒于qsign簽名服務(wù)器尚未構(gòu)建,所以一直沒有將 go-cqhttp 上線測試。目前已順利完成 Docker 內(nèi) qsign 服務(wù)器的安裝工作,暫時采用 Docker 市場提供的第三方鏡像作為解決方案。未來計劃抽空自制 qsign 鏡像,以實現(xiàn)更精細的定制化控制。
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 服務(wù)器就運行起來了。參數(shù)說明:
- -d 后臺運行
- –restart=always 服務(wù)自動重啟
- –name asign 給容器取的名字叫做:qsign
- -p 8080:8080 端口映射,可以通過宿主機的 8080 端口訪問容器內(nèi)部的 8080 端口
- e ANDROID_ID=xxxxxxxx 環(huán)境變量,將ANDROID_ID 參數(shù)傳遞給容器
- xzhouqd/qsign:8.9.63 安裝用到的鏡像,自動從dockerhub里拉取
2 在宿主機或局域網(wǎng)內(nèi)連接 qsign 服務(wù)器
如果你的宿主機上(不是在 docker 里)正好運行了一個 go-cqhttp 服務(wù),將該服務(wù)的配置文件修改后,即可連接并使用該簽名服務(wù)器。修改如下:
- config.yml
將 sign-servers 里主簽名服務(wù)器地址填為:宿主機IP地址,端口號為 8080,即形式為:xxx.xxx.xxx.xxx:8080,本機可直接使用 127.0.0.1:8080 即可。
圖1 修改 config.yml 文件
- device.json
請將 android_id 填入你的 ANDROID_ID, 可以根據(jù)自己的喜好填寫即可。
圖2 修改 device.json 文件
3 在宿主機里其他容器上連接 qsign 服務(wù)器
容器之間相互調(diào)用,就可以用 docker-compose 腳本來實現(xiàn),將兩個容器編排在一個文件里,以虛擬網(wǎng)絡(luò)link的方式即可實現(xiàn)容器之間進行網(wǎng)絡(luò)互訪。
編輯 docker-compos.yml 文件,內(nèi)容如下:
version: "3.5" # 使用版本 3.5 services: # 服務(wù)列表 cqhttp: # go-cqhttp 服務(wù) container_name: cqhttp # 指定容器名稱 image: go-cqhttp-alpine:0.0.1 # 使用的鏡像名稱 networks: # 本容器加入的網(wǎng)絡(luò),可以是多個 - my_network links: # 連接到其他的容器的列表,此處表示 cqhttp 容器會放翁 qsign 容器 - qsign qsign: # qsign 服務(wù) container_name: qsign # 指定容器名稱 image: xzhouqd/qsign:8.9.63 # 使用的鏡像名稱 ports: # 鏡像端口列表 - 8080:8080 environment: # 環(huán)境變量,會傳遞到容器里 ANDROID_ID: xxxxxx # 填入你想使用的ID,可以是昵稱、手機號啥的,都可以 networks: # 本容器加入的網(wǎng)絡(luò),可以是多個 - my_network networks: my_network: name: my_network
在 docker-compos.yml 文件所在目錄下,使用終端輸入命令:
docker-compose up -d
4 應(yīng)用效果
圖3 應(yīng)用效果-1
上圖中,紅框內(nèi)的內(nèi)容沒明白是什么意思,不知道是不是 go-cqhttp 的 bug,但似乎不影響使用。
圖4 應(yīng)用效果-2
從上圖可以看到,收到了群里發(fā)來的消息,但目前只能“聽”,不能“說”。
5 擴展
5.1 go-cqhttp 和 qsign 是分開還是合在一個docker里
一般建議將go-cqhttp和qsign分開部署在不同的Docker容器中,以保持系統(tǒng)的模塊化、易維護性、資源隔離和故障隔離優(yōu)勢,更關(guān)鍵還有就是容易擴充和分布式部署,滿足負載均衡的需要。
只有當兩個服務(wù)間存在極為緊密的關(guān)聯(lián),資源需求高度一致,且通信效率要求極高時,才考慮將其合并部署在同一容器內(nèi)。實際決策應(yīng)依據(jù)具體項目需求、資源狀況和運維策略來確定。
此處我們決定采用分離的方式。
5.2 將dockerhub里的鏡像存儲到本地
對于比較難找的鏡像,為了便于以后加載使用,避免出現(xiàn)上傳用戶刪除鏡像導致以后找不到該鏡像的情況,所以需要將鏡像保存到本地。
- 保存鏡像
使用 docker save 命令:
docker save -o xzhouqd_qsign_8.9.63.tar xzhouqd/qsign:8.9.63
保存的文件名為:xzhouqd_qsign_8.9.63.tar,文件還是不小的,達到500多兆。
- 加載鏡像
使用 docker load 命令:
docker load -i xzhouqd_qsign_8.9.63.tar
使用 load 加載后,鏡像就會出現(xiàn)在docker 鏡像列表里了。
參考文章(致謝)
Linux服務(wù)器下 簽名服務(wù)器+Mirai部署 詳細教程
使用qsign解決gocq啟動code45報錯 - 知乎
到此這篇關(guān)于docker安裝、調(diào)試qsign簽名服務(wù)器的文章就介紹到這了,更多相關(guān)docker qsign簽名服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker安裝部署Mysql8的過程(以作數(shù)據(jù)持久化)
這篇文章主要介紹了Docker安裝部署Mysql8(以作數(shù)據(jù)持久化),首先創(chuàng)建容器并進行持久化處理,接著配置遠程連接并嘗試,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-09-09創(chuàng)建的docker容器時間顯示錯誤/date錯誤/時區(qū)錯誤
這篇文章主要介紹了創(chuàng)建的docker容器時間顯示錯誤/date錯誤/時區(qū)錯誤的處理方法,一起看看吧2017-06-06在Linux Ubuntu系統(tǒng)上使用Docker部署Android模擬器的操作指南
大家好,今天要給大家?guī)硪粋€超級實用的教程:如何在Linux Ubuntu系統(tǒng)上使用Docker部署Android模擬器,并結(jié)合cpolar內(nèi)網(wǎng)穿透工具實現(xiàn)遠程訪問,需要的朋友可以參考下2025-03-03Docker教程之dockerfile構(gòu)建centos鏡像
這篇文章主要介紹了Docker教程之dockerfile構(gòu)建centos鏡像的相關(guān)資料,需要的朋友可以參考下2022-11-11Gitlab-runner+Docker實現(xiàn)自動部署SpringBoot項目
這篇文章主要介紹了Gitlab-runner+Docker自動部署SpringBoot項目,我們的主要流程就是通過Gitlab管理代碼,然后利用Gitlab自帶的Gitlab?CI/CD功能與GitlabRunner進行注冊綁定,需要的朋友可以參考下2022-04-04docker容器狀態(tài)轉(zhuǎn)換管理命令實例詳解
Docker容器只是一個運行于宿主操作系統(tǒng)host?OS上的應(yīng)用進程,所以你需要一個鏡像來運行它,Docker鏡像以進程的方式運行時就叫做Docker容器,這篇文章主要給大家介紹了關(guān)于docker容器狀態(tài)轉(zhuǎn)換管理命令的相關(guān)資料,需要的朋友可以參考下2022-05-05