Closed ForElysia-Emen closed 5 months ago
给出配置文件的内容
给出配置文件的内容
宿主机上的配置文件
{
"enableHttp": false,
"httpPort": 3000,
"enableWs": false,
"wsPort": 3001,
"enableWsReverse": true,
"wsReverseUrls": ["ws://172.17.0.4:8080/onebot/v11/ws"],
"enableHttpPost": false,
"httpPostUrls": [],
"httpSecret": "",
"messagePostFormat": "array",
"reportSelfMessage": false,
"debug": false,
"enableLocalFile2Url": true,
"heartInterval": 30000,
"token": ""
}
docker的启动命令
docker run -d -e ACCOUNT=1234567 -e WSR_ENABLE=true -e WS_URLS="ws://172.17.0.4:8080/onebot/v11/ws" --name napcat mlikiowa/napcat-docker:latest
docker镜像不是最新的吧,该问题已在(#2)中修复,请使用命令docker pull mlikiowa/napcat-docker:latest
拉取最新的镜像
已经是最新的镜像了 但是entrypoint中的
53 if [ "$WS_URLS" ]; then
54 sed -i "s/WS_URLS/$WS_URLS/" $CONFIG_PATH
55 else
56 sed -i "s/\"WS_URLS\"/\"\"/" $CONFIG_PATH
57 fi
没有按照预期执行 这是容器的config文件:
root@163eb74f0456:~# cat config.txt
{
"httpPort": HTTP_PORT,
"httpPostUrls": ["HTTP_URLS"],
"httpSecret": "",
"wsPort": WS_PORT,
"wsReverseUrls": ["WS_URLS"],
"enableHttp": HTTP_ENABLE,
"enableHttpPost": HTTP_POST_ENABLE,
"enableWs": WS_ENABLE,
"enableWsReverse": WSR_ENABLE,
"messagePostFormat": "array",
"reportSelfMessage": RSM_ENABLE,
"debug": DEBUG_ENABLE,
"enableLocalFile2Url": F2U_ENABLE,
"heartInterval": HEART,
"token": "TOKEN"
}
root@163eb74f0456:~# cat config/onebot11_3825923451.json
{
"httpPort": 3000,
"httpPostUrls": [""],
"httpSecret": "",
"wsPort": 3001,
"wsReverseUrls": ["WS_URLS"],
"enableHttp": false,
"enableHttpPost": false,
"enableWs": false,
"enableWsReverse": true,
"messagePostFormat": "array",
"reportSelfMessage": false,
"debug": false,
"enableLocalFile2Url": false,
"heartInterval": 60000,
"token": ""
}
按照copilot的说法: WS_URLS 的值包含了特殊字符 /,这在 sed 的替换表达式中被用作分隔符。因此,如果你直接使用这个值,sed 会将其解析为命令的一部分,从而导致错误。
例如,如果你运行 sed "s/WS_URLS/$WS_URLS/" $CONFIG_PATH,实际上 sed 会看到的命令是 sed "s/WS_URLS/ws://172.17.0.4:8080/onebot/v11/ws/" $CONFIG_PATH。这里的 // 和 /onebot/ 会被 sed 解析为命令的一部分,从而导致错误。
只需要把
sed -i "s/WS_URLS/$WS_URLS/" $CONFIG_PATH
改成
sed -i "s#WS_URLS#$WS_URLS#" $CONFIG_PATH
我已经提交了一个新的分支,fix-wsurl,如果测试后没有问题,请合并到主分支里
抱歉我忽略了这个问题,已合并(#4 )
ws地址为
当在宿主机中直接clone napcatqq使用sh脚本启动时,没有报错(已配置反向ws地址)