报错内容:
KeyError: 'PublicPort'REQUEST_DATE: 2026-01-02 20:34:06 VERSION: Ubuntu 22.04.5 LTS (Jammy Jellyfish) x86_64(Py3.7.8) - 11.1.0 REMOTE_ADDR: 89.185.27.4 REQUEST_URI: POST /btdocker/container/get_list?REQUEST_FORM: {} USER_AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36Traceback (most recent call last): File "/www/server/panel/BTPanel/init.py", line 2545, in publicObject res = run_obj.run(toObject, defs, get) File "/www/server/panel/BTPanel/init.py", line 2492, in run result = getattr(toObject, get.action)(get) File "class/panelController.py", line 81, in model result = PluginLoader.module_run(module_name,def_name,pdata) File "class/PluginLoader.py", line 148, in module_run result = run_object(args) File "/www/server/panel/class/btdockerModel/containerModel.py", line 1247, in get_list struct_container = self.struct_container_list(sk_c, container_to_top) File "/www/server/panel/class/btdockerModel/containerModel.py", line 1158, in struct_container_list "ports": self.struct_container_ports(container["Ports"]), File "/www/server/panel/class/btdockerModel/containerModel.py", line 1135, in struct_container_ports }] if "IP" in port else NoneKeyError: 'PublicPort'
解决方案:
打开文件
nano /www/server/panel/class/btdockerModel/containerModel.py
大约在 1120~1140 行,你会看到类似:
"PublicPort": port["PublicPort"],
改为
"PublicPort": port.get("PublicPort", None),
然后bt restart重启宝塔面板
KeyError: 'PublicPort'REQUEST_DATE: 2026-01-02 20:34:06 VERSION: Ubuntu 22.04.5 LTS (Jammy Jellyfish) x86_64(Py3.7.8) - 11.1.0 REMOTE_ADDR: 89.185.27.4 REQUEST_URI: POST /btdocker/container/get_list?REQUEST_FORM: {} USER_AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36Traceback (most recent call last): File "/www/server/panel/BTPanel/init.py", line 2545, in publicObject res = run_obj.run(toObject, defs, get) File "/www/server/panel/BTPanel/init.py", line 2492, in run result = getattr(toObject, get.action)(get) File "class/panelController.py", line 81, in model result = PluginLoader.module_run(module_name,def_name,pdata) File "class/PluginLoader.py", line 148, in module_run result = run_object(args) File "/www/server/panel/class/btdockerModel/containerModel.py", line 1247, in get_list struct_container = self.struct_container_list(sk_c, container_to_top) File "/www/server/panel/class/btdockerModel/containerModel.py", line 1158, in struct_container_list "ports": self.struct_container_ports(container["Ports"]), File "/www/server/panel/class/btdockerModel/containerModel.py", line 1135, in struct_container_ports }] if "IP" in port else NoneKeyError: 'PublicPort'
解决方案:
打开文件
nano /www/server/panel/class/btdockerModel/containerModel.py
找到函数
大约在 1120~1140 行,你会看到类似:
"PublicPort": port["PublicPort"],
改为
"PublicPort": port.get("PublicPort", None),
然后bt restart重启宝塔面板