Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用docker部署该项目---教程 #326

Open
zzcabc opened this issue May 19, 2022 · 14 comments
Open

使用docker部署该项目---教程 #326

zzcabc opened this issue May 19, 2022 · 14 comments

Comments

@zzcabc
Copy link

zzcabc commented May 19, 2022

首先确保你的系统中存在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 重启

完成整体启动

@zzcabc
Copy link
Author

zzcabc commented May 19, 2022

上面的使用了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/

@zzcabc zzcabc changed the title 使用docker部署改项目---教程 使用docker部署该项目---教程 May 19, 2022
@zzcabc
Copy link
Author

zzcabc commented May 19, 2022

如果你使用web,在自定义端口记得-p web端口:8081

@TiAmoJIA
Copy link

之前docker pull 的时候好像不行,我以为docker跑路了

@zzcabc
Copy link
Author

zzcabc commented May 19, 2022

之前docker pull 的时候好像不行,我以为docker跑路了

不写后面的版本号,默认拉取的是latest,但是dockerhub没有,所以拉取不到

@BlackLotusAL
Copy link

太感谢了,之前没用过docker,docker run这里一头雾水

@miaomiao-hy
Copy link

多谢大佬,另外再请教下
我走到docker exec -it gocqhttp /bin/bash那步了,到是直接进入容器了, 但是进入后没东西啊,直接输入3提示command not found,比如gocqhttp的本机路径我写的是/data/gocqhttp 但是进入这个目录后是空的,要如何找到config.yml文件呢?

@zzcabc
Copy link
Author

zzcabc commented May 25, 2022

多谢大佬,另外再请教下 我走到docker exec -it gocqhttp /bin/bash那步了,到是直接进入容器了, 但是进入后没东西啊,直接输入3提示command not found,比如gocqhttp的本机路径我写的是/data/gocqhttp 但是进入这个目录后是空的,要如何找到config.yml文件呢?

尝试使用docker attach gocqhttp 进入容器

@miaomiao-hy
Copy link

多谢大,另外输入再请教下我去docker exec -it gocqhttp /bin/bash那一步了,到是直接进入容器了,但是进入后没东西啊,直接3提示command not found,比如gocqhttp的本机路我写的是/data/gocqhttp但是进入这个之后是空的,要如何找到目录config.yml文件呢?

尝试使用docker attach gocqhttp进入容器

非常感谢,可以了,刚输入进去一直没有提示符我还以为是机器卡住了,结果直接输入就行了

@OiCkilL
Copy link

OiCkilL commented May 27, 2022

分享一个自用的 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"

@SinKy-Yan
Copy link
Contributor

@MobiusT
Copy link
Contributor

MobiusT commented Jul 21, 2022

分享一个自用的 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"

@Windsland52
Copy link

看了下dockerhub上最新的更新还是一年前,如何更新版本

@HibiKier
Copy link
Owner

仓库中有Dockerfile

@Windsland52
Copy link

仓库中有Dockerfile

感谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants