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

Windows11下Docker Compose部署Odoo执行scaffold遇权限拒绝问题

解决Windows11下Odoo Docker容器生成模块权限拒绝问题

问题原因

Windows文件系统与Linux容器的权限模型不兼容,Odoo容器默认以odoo用户(UID 1000)运行,该用户没有权限写入Windows挂载到容器的/mnt/extra-addons目录(对应主机的./addons)。

解决方法

方法一:以root身份进入容器执行scaffold

  1. 用root用户进入容器bash:
    docker-compose exec --user root web /bin/bash
    
  2. 执行模块生成命令:
    odoo scaffold test_module /mnt/extra-addons
    
  3. (可选)生成后将模块目录权限转回odoo用户,避免后续运行异常:
    chown -R odoo:odoo /mnt/extra-addons/test_module
    

方法二:主机预创建目录再调整容器内权限

  1. 在Windows主机的./addons目录下手动创建test_module文件夹
  2. 以root身份进入容器:
    docker-compose exec --user root web /bin/bash
    
  3. 修改目录权限给odoo用户:
    chown odoo:odoo /mnt/extra-addons/test_module
    
  4. 执行scaffold命令生成模块内容:
    odoo scaffold test_module /mnt/extra-addons
    

方法三:临时修改容器运行用户为root(不推荐长期使用)

修改docker-compose.yaml的web服务配置,添加user: root:

version: "3.1"
services:
  web:
    image: odoo:16.0
    user: root  # 新增该行
    depends_on:
      - db
    ports:
      - "8069:8069"
    volumes:
      - odoo-web-data:/var/lib/odoo
      - ./config:/etc/odoo
      - ./addons:/mnt/extra-addons
      - ./log:/var/log/odoo
    environment:
      - HOST=db
      - USER=odoo
      - PASSWORD=myodoo
  # db服务配置不变

重启容器后即可正常执行scaffold命令:

docker-compose down && docker-compose up -d
docker-compose exec web /bin/bash
odoo scaffold test_module /mnt/extra-addons

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:40:11