You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Odoo14上传新模块后应用列表无显示的问题咨询

Docker 部署Odoo14 新增模块无法在应用列表识别的排查与解决方法

核心排查步骤


1. 核对Odoo实际扫描的模块路径配置

  • 进入运行中的Odoo容器,执行cat /etc/odoo/odoo.conf,检查addons_path配置项的实际值,确认/mnt/extra-addons被完整包含在路径列表中。不少场景下,容器启动时的自定义配置会把默认路径替换为其他目录,哪怕你把文件放到/mnt/extra-addons,Odoo进程根本不会扫描该目录。
  • 执行docker inspect <你的Odoo容器ID/名称>,在返回结果的Mounts字段中核对目录映射关系,确认云服务器上你实际上传模块的宿主机路径,是否正确绑定到容器内的/mnt/extra-addons。很多人上传模块时选错了宿主机目录,导致容器内看到的文件是临时层的无效文件,和实际挂载的目录不互通。

2. 校验模块文件的读取权限与完整性

  • 容器内Odoo进程默认以odoo用户(通常对应uid=1000)运行,如果上传的模块文件所有者是root、权限设置为仅所有者可读,Odoo进程会因为无读取权限静默跳过该模块,不会抛出前端报错。直接执行chown -R 1000:1000 /mnt/extra-addons/你的模块目录名,把模块的所有者调整为和Odoo进程一致的用户即可。
  • 直接在容器内校验模块的__manifest__.py文件有效性,执行python3 -c "import ast; ast.parse(open('/mnt/extra-addons/你的模块名/__manifest__.py').read())",确认文件没有Python语法错误。不少云服务器上传场景下会出现文件编码异常、文件被截断丢失内容的问题,哪怕本地能正常识别,云上的文件损坏后会直接被扫描流程拦截。

3. 触发完整的应用列表扫描流程

  • 不要仅依赖前端界面的“更新应用列表”按钮,优先通过命令行触发强制全量扫描:在容器内执行odoo -c /etc/odoo/odoo.conf -d <你的业务数据库名> --update=base,强制Odoo重新遍历所有配置的addons路径。很多时候前端按钮触发的更新操作会因为浏览器缓存、会话权限问题,没有真正向后端发送扫描请求。
  • 进入应用列表页后,清空所有筛选条件(尤其是“已安装”“应用类型”的过滤选项),不要只查看默认的应用分类页,新模块可能因为分类标识不匹配被默认隐藏。确认当前登录账号为超级管理员(admin),避免普通用户的权限过滤导致模块不可见。

4. 排查环境差异导致的扫描拦截

  • 直接查看Odoo运行日志(通常路径为/var/log/odoo/odoo.log,或通过docker logs <容器ID>查看输出日志),搜索和你模块名相关的warning或error信息。如果云服务器的Odoo镜像缺少模块依赖的第三方Python包,Odoo扫描时会直接跳过该模块,不会在前端展示任何提示,仅会在日志中记录拦截原因。
  • 确认当前登录的数据库为部署新模块的目标库,避免因为Odoo配置了多数据库模式,错进到其他测试数据库导致看不到模块。

内容的提问来源于stack exchange,提问作者n3wbiTesting

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 06:54:03