zhenxun_bot
zhenxun_bot copied to clipboard
使用docker部署该项目---教程
首先确保你的系统中存在docker,且系统架构是Amd64位的,可以输入命令uname -a
找到关键字amd64
使用以下命令,运行pg数据库,创建xxx的数据库名
默认用户名是postgres
,密码就你输入的
其中本机端口范围1-65535,注意不要使用常用端口
本机地址 写绝对路径,看你将数据库的数据存放在哪
docker run -d \
--name postgres \
--restart=always \
-p 本机端口:5432 \
-e POSTGRES_PASSWORD=数据库密码 \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v 本机地址/postgresql_data:/var/lib/postgresql/data \
postgres
使用下面命令启动bot
bot存放路径写好
版本号去dockerhub看看最新的写好
docker run -d \
--name zhenxun_bot \
--restart=always \
--network=host \
-v bot存放路径:/bot \
hibikier/zhenxun_bot:版本号
通过下面命令运行gocqhttp
其中本机路径是gocqhttp配置路径
bot存放路径填上面的存放路径
docker run -dit \
--name gocqhttp \
--restart=always \
--network=host \
-v 本机路径:/data \
-v bot存放路径:/bot \
pcrbot/gocqhttp:ffmpeg
配置
启动gocqhttp
先启动gocqhttp,然后使用docker exec -it gocqhttp /bin/bash
或者 docker attach gocqhttp
进入 gocqhttp容器输入3
进不去就使用docker restart gocqhttp
然后就在gocqhttp的本机路径找到config.yml编辑
account: # 账号相关
uin: qq # QQ账号
password: '密码' # 密码为空时使用扫码登录
servers:
# 添加方式,同一连接方式可添加多个,具体配置说明请查看文档
#- http: # http 通信
#- ws: # 正向 Websocket
#- ws-reverse: # 反向 Websocket
#- pprof: #性能分析服务器
# 反向WS设置
- ws-reverse:
# 反向WS Universal 地址
# 注意 设置了此项地址后下面两项将会被忽略
universal: ws://127.0.0.1:8080/onebot/v11/ws/ 看好了,是这里
然后使用docker restart gocqhttp
重启就可以了,不用管
这里还要进入容器,输入2,然后手机扫码登录,把链接复制到浏览器,然后扫码,在重启容器即可
启动zhenxun_bot
在bot存放路径,下找到.env.dev文件
SUPERUSERS=["管理的QQ号"]
在bot存放路径,下找到configs文件夹然后有个config.py文件
bind: str = "postgresql://postgres:密码@数据库的服务器ip:你设置的pg数据库端口/xxx数据库名" # 数据库连接链接
使用docker restart zhenxun_bot
重启
在configs文件夹,生成了config.yaml,看文档编辑就好了
使用docker restart zhenxun_bot
重启
完成整体启动
上面的使用了host网络,下面是自定义端口的
依旧gocqhttp和zhenxun_bot在同一台服务器上面 要确定你的自定义端口是什么,我这里已4455端口为例
确定你的端口
docker run -d \
--name zhenxun_bot \
--restart=always \
-v bot存放路径:/bot \
-p 4455:4455 \
hibikier/zhenxun_bot:0.1.5.0
在.env.dev文件,改成如下方式
# 服务器和端口
HOST = 0.0.0.0
PORT = 4455
删除 --networt=host
docker run -dit \
--name gocqhttp \
--restart=always \
-v 本机路径:/data \
-v bot存放路径:/bot \
pcrbot/gocqhttp:ffmpeg
然后把下面的改成这个
universal: ws://服务器ip:4455/onebot/v11/ws/
如果你使用web,在自定义端口记得-p web端口:8081
之前docker pull 的时候好像不行,我以为docker跑路了
之前docker pull 的时候好像不行,我以为docker跑路了
不写后面的版本号,默认拉取的是latest,但是dockerhub没有,所以拉取不到
太感谢了,之前没用过docker,docker run这里一头雾水
多谢大佬,另外再请教下 我走到docker exec -it gocqhttp /bin/bash那步了,到是直接进入容器了, 但是进入后没东西啊,直接输入3提示command not found,比如gocqhttp的本机路径我写的是/data/gocqhttp 但是进入这个目录后是空的,要如何找到config.yml文件呢?
多谢大佬,另外再请教下 我走到docker exec -it gocqhttp /bin/bash那步了,到是直接进入容器了, 但是进入后没东西啊,直接输入3提示command not found,比如gocqhttp的本机路径我写的是/data/gocqhttp 但是进入这个目录后是空的,要如何找到config.yml文件呢?
尝试使用docker attach gocqhttp 进入容器
多谢大,另外输入再请教下我去docker exec -it gocqhttp /bin/bash那一步了,到是直接进入容器了,但是进入后没东西啊,直接3提示command not found,比如gocqhttp的本机路我写的是/data/gocqhttp但是进入这个之后是空的,要如何找到目录config.yml文件呢?
尝试使用docker attach gocqhttp进入容器
非常感谢,可以了,刚输入进去一直没有提示符我还以为是机器卡住了,结果直接输入就行了
分享一个自用的 docker-compose
version: '3'
services:
postgres:
container_name: postgresql
environment:
- TZ=Asia/Shanghai
- POSTGRES_HOST_AUTH_METHOD=trust
- POSTGRES_DB=db_zhenxun
- POSTGRES_USER=user
- POSTGRES_PASSWORD=zhenxun
ports:
- 54323:5432
volumes:
- './data:/var/lib/postgresql/data'
image: postgres
zhenxun_bot:
container_name: zhenxun_bot
depends_on:
- postgres
volumes:
- './bot:/bot'
environment:
- TZ=Asia/Shanghai
image: hibikier/zhenxun_bot:latest
network_mode: "host"
gocqhttp-docker:
container_name: gocq
environment:
- TZ=Asia/Shanghai
volumes:
- './gocq:/data'
- './bot:/bot:ro'
image: xzsk2/gocqhttp-docker:latest
network_mode: "host"
https://github.com/SinKy-Yan/zhenxunbot-docker
分享一个自用的 docker-compose
version: '3' services: postgres: container_name: postgresql environment: - TZ=Asia/Shanghai - POSTGRES_HOST_AUTH_METHOD=trust - POSTGRES_DB=db_zhenxun - POSTGRES_USER=user - POSTGRES_PASSWORD=zhenxun ports: - 54323:5432 volumes: - './data:/var/lib/postgresql/data' image: postgres zhenxun_bot: container_name: zhenxun_bot depends_on: - postgres volumes: - './bot:/bot' environment: - TZ=Asia/Shanghai image: hibikier/zhenxun_bot:latest network_mode: "host" gocqhttp-docker: container_name: gocq environment: - TZ=Asia/Shanghai volumes: - './gocq:/data' - './bot:/bot:ro' image: xzsk2/gocqhttp-docker:latest network_mode: "host"
gocqhttp首次启动的时候因为没有输入3一直在重启,导致没法attach进去配置要怎么做啊
You cannot attach to a restarting container, wait until it is running
如果取消restart: always 则会报这个 You cannot attach to a stopped container, start it first
gocq | 您的选择是:未找到配置文件,正在为您生成配置文件中! gocq | 请选择你需要的通信方式: gocq | > 0: HTTP通信 gocq | > 1: 云函数服务 gocq | > 2: 正向 Websocket 通信 gocq | > 3: 反向 Websocket 通信 gocq | > 4: pprof 性能分析服务器 gocq | 请输入你需要的编号(0-9),可输入多个,同一编号也可输入多个(如: 233) gocq | time="2022-07-21T13:51:18Z" level=fatal msg="输入不合法: EOF"