zhenxunbot-docker
zhenxunbot-docker copied to clipboard
真寻BOT的Docker镜像编译源码,已集成运行BOT必须的PostgreSQL、绪山真寻BOT

绪山真寻BOT的Docker镜像
镜像内已集成运行BOT需要的数据库、BOT本体、以及真寻WebUI😋
顺手点个Star⭐呗~
🚀快速开始
直接运行下面这条命令,就会出现一个脚本引导你创建一个Bot容器
curl -sSL https://raw.githubusercontent.com/SinKy-Yan/zhenxunbot-docker/master/SetUP.sh | sudo bash
🧐需要知道
你的机器需要有1G以上的空闲内存、2GB以上的空余储存空间
先确定能用go-cqhttp登录上BOT的QQ,否则需要进入容器查看日志
除了集成运行BOT必须的Python依赖之外,还有rich、requests、jinja2、thefuzz、aiocache、baike、imageio,这些是添加额外插件所需的常见依赖
镜像内并没有git、vim、wget等常用软件包,需要你自己安装
也没有chromium,需要的话进入容器执行playwright install chromium
迁移数据库📑
迁移数据库是为了如果你以前部署过真寻的话,可以继承好感度、金币等数据,当然你也可以迁移,它会自动新建
请先导出旧数据库,如果你使用的是真寻文档里的搭建方法,那么应该可以用pg_dump --host 127.0.0.1 --port 5432 --username uname > zhenxun.sql testdb这条命令导出数据库,它会问你密码,密码可能是zhenxun,之后会在当前目录变出来一个叫zhenxun.sql的文件,如果不成功的话最好看一下这条命令里面的主机地址和端口和数据库名字是不是对的,具体怎么看自己百度PostgreSQL怎么操作
然后将zhenxun.sql拷贝到将要部署Docker版真寻的宿主机的~/my_plugins目录下,如果该目录不存在则需要手动创建,然后就可以了,容器创建时会检测有没有这个文件,有的话就会帮你导入的,不过只是帮你导入,数据库本身有问题导致报错就跟我没关系
已知问题😥
OpenWrt系统下的luci-app-docker插件中的容器日志没有任何内容
快速开始🎉
将下面命令中单引号内的bot的QQ号、bot的QQ密码、管理员QQ号、识图API-KEY、WebUI用户名、WebUI密码替换成对应的账号和密码之后执行就好了
⚠识图API-KEY不替换也行,但是运行之后bot的识图功能会用不了,以后你想再加上的话需要进入容器自己更改,API_KEY通过该网址注册获取
⚠会在当前用户的用户根目录里新建一个叫my_plugins的文件夹,这就是自定义插件的目录,同时里面也会有WebUI和gocq的日志文件,可以使用cd ~/my_plugins命令来进入
⚠第一次运行容器会有一个已创建config.yaml,请重启bot的提示,这个不用管,只要按我下面命令里一样设了自动重启的话容器会自动重启,不影响使用
docker run -itd --restart=on-failure:3 \
-e bot_qq='BOT的QQ号' \
-e bot_qq_key='BOT的QQ密码' \
-e admin_qq='管理员QQ号' \
-e api_key='识图API-KEY' \
-e webui_user='WebUI用户名' \
-e webui_passwd='WebUI密码' \
-p 8081:8081 \
-v ~/my_plugins:/home/zhenxun_bot/my_plugins \
--name=zhenxun_bot \
jyishit/zhenxun_bot
执行之后会开始从Docker Hub上下载镜像,下载并解压之后容器创建成功的话终端会返回一长串的容器ID,下载速度取决于你的网速,推荐设置一个镜像加速器
查看Docker日志,成功运行之后可以去容器IP:8081进入真寻的WebUI

需要帮助🐱💻?
你可以点击图片加入QQ交流群、有关代码的问题可以提一个Issue、别的东西可以发在讨论里
编译镜像(待补充)
你需要搞定Docker的Buildx环境然后克隆该仓库然后执行下面的命令构建即可
docker buildx build --platform=arm64 --tag=zhenxun -o type=docker .
容器内文件结构📂
/home
├── go-cqhttp
│ ├── data
│ ├── logs
│ ├── config.yml
│ ├── device.json
│ ├── go-cqhttp
│ └── session.token
├── zhenxun_bot
│ ├── .git
│ ├── .github
│ ├── basic_plugins
│ ├── configs
│ ├── data
│ ├── docs_image
│ ├── extensive_plugin
│ ├── log
│ ├── models
│ ├── my_plugins
│ ├── plugins
│ ├── resources
│ ├── services
│ ├── utils
│ ├── .env
│ ├── .env.dev
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ ├── __version__
│ ├── bot.py
│ ├── logo.png
│ ├── poetry.lock
│ ├── pyproject.toml
│ ├── restart.sh
│ └── update_info.json
├── zhenxun_bot_webui
│ ├── .git
│ ├── dist
│ ├── node_modules
│ ├── public
│ ├── src
│ ├── .gitignore
│ ├── LICENSE
│ ├── README.md
│ ├── babel.config.js
│ ├── jsconfig.json
│ ├── package.json
│ ├── vue.config.js
│ └── yarn.lock
└── docker-entrypoint.sh