如何在docker-compose环境下刷新Odoo开发文件(开发者功能)
Docker Compose下Odoo 18开发模式自动刷新失效的解决办法
核心配置排查与修正
- 调整命令参数写法:原
command字段缺少主命令odoo,正确写法应为:command: odoo --dev all -d test - 移除只读挂载标记:自定义插件目录挂载时的
:ro会阻止Odoo在开发模式下生成缓存文件,修改volumes配置:- ./addons:/mnt/custom-addons - ./enterprise:/mnt/enterprise-addons - 修复文件权限:宿主机上的插件目录需让容器内的odoo用户(UID 1000)拥有读写权限,执行:
chown -R 1000:1000 ./addons ./enterprise
不重启容器实现代码自动刷新的操作
动态重载Odoo配置
- 进入运行中的Odoo容器:
docker exec -it <你的Odoo容器名或ID> bash - 编辑Odoo配置文件(如
/etc/odoo/odoo.conf),添加:dev = all - 发送HUP信号让Odoo重载配置和模块(无需重启容器):
kill -HUP $(ps aux | grep odoo | grep -v grep | awk '{print $2}')
- 进入运行中的Odoo容器:
模块代码更新后快速加载
修改Python文件后,在Odoo后台「应用」菜单找到对应模块,点击「升级」按钮即可加载最新代码,无需重启服务(仅适用于自定义模块代码)。
修正后的docker-compose.yml片段
services: web: image: odoo:18 ports: - "8069:8069" environment: - HOST=db - USER=odoo - PASSWORD=myodoo volumes: - odoo-web-data:/var/lib/odoo - ./config:/etc/odoo:ro - ./addons:/mnt/custom-addons - ./enterprise:/mnt/enterprise-addons command: odoo --dev all -d test db: ...
内容的提问来源于stack exchange,提问作者olive007
相关产品推荐
相关产品推荐

