Docker部署Odoo遇PermissionError:无'/var/lib/odoo/sessions'权限
解决Docker部署Odoo时的
PermissionError: /var/lib/odoo/sessions权限问题 问题分析
错误核心是Odoo进程无权限创建或写入/var/lib/odoo/sessions目录——容器内该目录默认由root用户拥有,而Odoo常规以odoo普通用户运行,导致权限冲突。
解决方案
方案1:通过Docker Compose指定运行用户
修改项目中的docker-compose.yml,在Odoo服务配置中添加用户ID和组ID映射,让容器内进程权限与本地用户一致:
services: odoo: # 保留原有配置... user: "${UID}:${GID}"
在项目根目录的.env文件中添加(本地执行id -u获取UID,id -g获取GID):
UID=1000 GID=1000
重新启动容器:
sh dev down && sh dev up -d
方案2:手动修复容器内目录权限
- 进入运行中的Odoo容器:
docker exec -it <你的Odoo容器名称> bash
- 创建目录并修改所有权:
mkdir -p /var/lib/odoo/sessions chown -R odoo:odoo /var/lib/odoo
如果是挂载了本地数据卷到/var/lib/odoo,也可在本地直接调整权限:
sudo chown -R 1000:1000 ./path/to/your/odoo-data-folder
(注:1000是容器内odoo用户默认UID,可通过docker exec <容器名> id odoo确认)
方案3:修改Odoo配置指定会话目录
在Odoo配置文件(如odoo.conf)中添加自定义会话目录,指向容器内有权限的路径(比如/tmp):
session_dir = /tmp/odoo-sessions
确保该配置文件被正确挂载到容器内的Odoo配置路径,然后重启容器。
内容的提问来源于stack exchange,提问作者ITN
相关产品推荐
相关产品推荐

