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

Docker部署Odoo无法更新应用列表及数据库连接超时求助

问题排查与解决方案

一、解决数据库连接超时问题

1. 替换静态IP为Docker服务名

Docker Compose会自动创建内部网络,服务间通过服务名称即可访问,静态IP(如172.17.0.2)会随容器重启变化,导致连接失败。执行更新命令时改用服务名(假设Postgres服务名为db):

/usr/bin/odoo -p 8071 --db_host=db --db_user=odoo --db_password=odoo -d odoo -u estate

2. 确认Docker Compose配置正确性

检查docker-compose.yml中数据库与Odoo服务的环境变量配置,确保信息匹配:

services:
  db:
    image: postgres:13
    environment:
      - POSTGRES_USER=odoo
      - POSTGRES_PASSWORD=odoo
      - POSTGRES_DB=postgres
    volumes:
      - postgres_data:/var/lib/postgresql/data
  odoo:
    image: odoo:latest
    depends_on:
      - db
    ports:
      - "8070:8069"
    environment:
      - HOST=db
      - USER=odoo
      - PASSWORD=odoo
    volumes:
      - ./extra-addons:/mnt/extra-addons
      - data:/var/lib/odoo
      - ./config:/etc/odoo
volumes:
  postgres_data:
  data:

重点确保Odoo的HOST参数指向Postgres服务名,且数据库用户、密码与Postgres配置完全一致。

二、修复应用列表无响应问题

1. 修正模块目录结构

Odoo要求每个自定义模块单独存放在专属文件夹中,当前目录结构错误,需调整为:

.
├── config
│   └── odoo.conf
├── docker-compose.yml
└── extra-addons
    └── estate
        ├── __init__.py
        └── __manifest__.py

将__init__.py和__manifest__.py移动到extra-addons/estate/子目录下。

2. 验证模块初始化文件

确保estate/__init__.py内容合法(空文件或基础导入语句均可):

# 空文件即可满足基础模块要求

3. 重新加载模块并更新应用列表

  1. 重启Odoo容器,让新的模块目录生效:
docker-compose restart odoo
  1. 进入调试模式(http://localhost:8070/web?debug=1),点击右上角「更新应用列表」按钮。
  2. 在应用搜索栏输入estate,即可找到自定义模块。

三、额外检查项

  • 修复目录权限,确保Odoo容器能读取模块文件:
chown -R 1000:1000 ./extra-addons

(Odoo容器默认用户UID/GID为1000)

  • 完善odoo.conf的插件路径配置,包含官方默认插件目录:
[options]
addons_path = /usr/lib/python3/dist-packages/odoo/addons,/mnt/extra-addons
data_dir = /var/lib/odoo

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:05:37