SinKy-Yan / zhenxunbot-docker

真寻BOT的Docker镜像编译源码,已集成运行BOT必须的PostgreSQL、绪山真寻BOT
GNU Affero General Public License v3.0
166 stars 29 forks source link

WebUI工作不正常 #2

Closed OiCkilL closed 2 years ago

OiCkilL commented 2 years ago

任意插件设置会出如下错误,只有群组管理的权限能正常设置


[ERROR] plugins | WEB_UI POST /webui/plugins model:poetry 发生错误 <class 'AttributeError'>:'list' object has no attribute 'split'
SinKy-Yan commented 2 years ago

你更新一下真寻试试,好像在新版本修复了这个BUG(可能)

OiCkilL commented 2 years ago

并没有修好,我现在还加了自动更新代码。之前用原始方式部署的 docker 没这问题。 目前这个镜像有些比较麻烦的问题,比如我习惯用 docker-compose,由于不明原因我没法把数据库映射到本机目录,以至于我一旦 docker-compose down 后就会数据全丢


git -C ./zhenxun_bot pull
echo -e "更新真寻 bot✔"
sleep 1s
git -C ./zhenxun_bot_webui pull
echo -e "更新 WebUI✔"
sleep 2s
OiCkilL commented 2 years ago

顺便,这是我的 docker-compose


version: '3.3'
services:
    zhenxun_bot:
        restart: 'on-failure:3'
        environment:
            - bot_qq=***
            - admin_qq=***
            - api_key=***
            - alapi_token=***
            - webui_user=admin
            - webui_passwd=admin
        ports:
            - '8081:8081'
            - '54322:5432'
        volumes:
            - './my_plugins:/home/zhenxun_bot/my_plugins'
#            - './files/config.yaml:/home/zhenxun_bot/configs/config.yaml'
            - './resources/image/luoxiang:/home/zhenxun_bot/resources/image/luoxiang'
            - './resources/image/noresult:/home/zhenxun_bot/resources/image/noresult'
            - './resources/image/zai:/home/zhenxun_bot/resources/image/zai'
            - './resources/image/temp:/home/zhenxun_bot/resources/image/temp'
            - './resources/temp:/home/zhenxun_bot/resources/temp'
            - './logs/gocq.log:/home/go-cqhttp/gocq.log'
#            - './data:/var/lib/postgresql/12/main'
            - './logs/webui.log:/home/zhenxun_bot_webui/webui.log'
        container_name: zhenxun_bot
        image: oickill/zhenxun_bot
        #image: jyishit/zhenxun_bot
SinKy-Yan commented 2 years ago

任意插件设置会出如下错误,只有群组管理的权限能正常设置

[ERROR] plugins | WEB_UI POST /webui/plugins model:poetry 发生错误 <class 'AttributeError'>:'list' object has no attribute 'split'

这个问题暂时不打算在这个镜像上修了

SinKy-Yan commented 2 years ago

我现在打算重构三个镜像然后用docker-compose部署试一下,一个postgresql的镜像,一个真寻本体,一个webui, 这样镜像整体大小应该会小一点,然后再看看新的会不会有这个webui的问题

SinKy-Yan commented 2 years ago

并没有修好,我现在还加了自动更新代码。之前用原始方式部署的 docker 没这问题。 目前这个镜像有些比较麻烦的问题,比如我习惯用 docker-compose,由于不明原因我没法把数据库映射到本机目录,以至于我一旦 docker-compose down 后就会数据全丢


git -C ./zhenxun_bot pull
echo -e "更新真寻 bot✔"
sleep 1s
git -C ./zhenxun_bot_webui pull
echo -e "更新 WebUI✔"
sleep 2s

这个问题我写新的镜像的时候会看一下

OiCkilL commented 2 years ago

我现在打算重构三个镜像然后用docker-compose部署试一下,一个postgresql的镜像,一个真寻本体,一个webui, 这样镜像整体大小应该会小一点,然后再看看新的会不会有这个webui的问题

你说这个我用 Sakuracio 的镜像实现了,不过他的镜像我觉得写得并不好,bot 本体更新和维护非常麻烦。


version: '3'

services:
    postgres:
        container_name: postgresql
        restart: always
        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-alpine
    zhenxun_bot:
        container_name: zhenxun_bot
        restart: unless-stopped
        depends_on:
            - postgres
        volumes:
            - './bot:/bot'
        environment:
            - TZ=Asia/Shanghai
            - SU=***
        image: hibikier/zhenxun_bot:latest
        network_mode: "host"
    gocqhttp-docker:
        container_name: gocq
        restart: unless-stopped
        environment:
            - TZ=Asia/Shanghai
        volumes:
            - './gocq:/data'
            - './bot:/bot:ro'
        image: pcrbot/gocqhttp:ffmpeg
        network_mode: "host"
SinKy-Yan commented 2 years ago

我之前就是看了他的这个然后想在树莓派上搞不了,于是就自己写了个

SinKy-Yan commented 2 years ago

任意插件设置会出如下错误,只有群组管理的权限能正常设置

[ERROR] plugins | WEB_UI POST /webui/plugins model:poetry 发生错误 <class 'AttributeError'>:'list' object has no attribute 'split'

新的v1.3镜像应该修复了此问题,可以试一下

OiCkilL commented 2 years ago

任意插件设置会出如下错误,只有群组管理的权限能正常设置

[ERROR] plugins | WEB_UI POST /webui/plugins model:poetry 发生错误 <class 'AttributeError'>:'list' object has no attribute 'split'

新的v1.3镜像应该修复了此问题,可以试一下

好的,我试试。这两天我尝试自己写一个。写完后发现没法成功运行,部分变量没传到shell里。但应该可以给你一些新的启发 我这是为了尝试解决 docker overlay 的问题,先编译了镜像,然后启动时在挂载文件夹上再 clone 个新鲜的版本到本地。 bot.zip

SinKy-Yan commented 2 years ago

有人跟我说过为什么不把整个真寻文件夹映射出来,我想的是

SinKy-Yan commented 2 years ago

overlay导致的问题已经修复,已经给上游提交PR了在等合并 无法正常重启bot的问题也已经修复,也是等上游合并我的PR之后我这就更新 没什么问题的话我就先关闭这个issue了噢qwq

OiCkilL commented 2 years ago

有人跟我说过为什么不把整个真寻文件夹映射出来,我想的是

  • 在windows上部署的话映射出来之后可能会导致权限问题,就算没有权限问题可能改文件的时候也会因为windows默认不显示扩展名导致问题
  • 然后如果在openwrt上部署的话如果是默认用户运行docker的话它默认的挂载点空间是很小的,如果不扩容会有空间不够的问题
  • 然后也是怕映射出来之后就乱改
  • 然后就是感觉这种解决办法不够“优雅” 所以我还是只映射自定义插件文件夹,那个硬链接的问题我有空Google搜一下吧,应该不止我有这个疑问

数据库建议还是可以映射出来,我这群晖上 watchtower 一更新,实例里面的数据库清零了。因为实例上的临时文件问题,我volume1的空间也被撑爆,建议这些都提供可映射的方法。