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

执行Odoo脚手架命令遇权限拒绝错误,寻求解决办法

解决Docker中Odoo Scaffold权限拒绝问题

核心原因

Docker容器内的/mnt/extra-addons目录权限与宿主机挂载目录的权限不匹配,容器内运行Odoo的odoo用户(默认UID/GID为1000)没有该目录的写入权限。修改宿主机/mnt目录权限无效,是因为容器内的权限体系独立,且挂载目录本身的所有权未对应到容器内的运行用户。

可行解决方案

1. 确认容器内Odoo用户的UID/GID

先执行命令查看容器内Odoo进程所属用户的ID信息:

docker exec <odoo-container> id odoo

正常输出应为uid=1000(odoo) gid=1000(odoo) groups=1000(odoo)

2. 修正宿主机挂载目录的权限

找到宿主机上对应/mnt/extra-addons的实际挂载路径(可通过docker inspect <odoo-container>查看Mounts字段获取),执行以下命令将目录所有权赋予对应UID/GID:

sudo chown -R 1000:1000 /宿主机实际挂载路径/extra-addons

3. 容器内直接修正目录权限(临时方案)

若不想修改宿主机权限,可以root身份进入容器调整目录权限:

docker exec -u root <odoo-container> chown -R odoo:odoo /mnt/extra-addons

之后重新执行scaffold命令:

docker exec <odoo-container> odoo scaffold <project1> /mnt/extra-addons

4. 启动容器时指定用户(永久方案)

新建容器时,直接指定与宿主机目录权限匹配的UID/GID,避免后续权限问题:

docker run -d -v /宿主机实际挂载路径/extra-addons:/mnt/extra-addons -u 1000:1000 odoo:<你的版本号>

注意事项

  • 不要给/mnt目录设置777权限,这会带来严重安全风险,正确做法是让容器内的运行用户拥有对应目录的所有权。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 04:44:56