一、 前言
Odoo 19 是目前功能最强大的开源 ERP 系统。由于其基于 Docker 部署时,容器内部用户(UID)与 NAS 系统用户不一致,文件夹权限设置是安装成功与否的关键。本指南将重点解决权限报错问题。
二、 第一步:准备存储目录与权限预设
在飞牛 NAS 的文件管理器中,进入 Docker 根目录(如 /vol1/1000/docker),新建文件夹 odoo19。
1. 创建子目录
在 odoo19 文件夹下创建以下四个子文件夹:
- data:存储 Odoo 附件和会话数据。
- config:存储配置文件(如 odoo.conf)。
- addons:存储第三方插件模块。
- db-data:存储 PostgreSQL 数据库原始文件。
2. 核心:权限设置(必做)
由于 Odoo 镜像内部用户 UID 为 101,Postgres 镜像内部用户 UID 为 999,必须开放写入权限:
- 右键点击 odoo19 文件夹 -> 属性 -> 权限。
- 点击“添加”,选择 Everyone 用户。
- 勾选 读取 与 写入 权限。
- 关键操作:勾选“应用到子文件夹和文件”,点击确定。
- 注:若熟悉 SSH,可执行 chown -R 101:101 对应目录。
三、 第二步:使用 Docker Compose 部署
- 打开飞牛 NAS 的 Docker 应用 -> 项目 -> 添加项目。
- 项目名称命名为 odoo19。
- 粘贴以下配置代码(注意:请根据实际情况修改 /vol1/1000/ 路径):
codeYaml
version: '3.1'
services:
db:
image: postgres:17-alpine
environment:
- POSTGRES_DB=postgres
- POSTGRES_PASSWORD=odoo_password_123 # 数据库管理密码
- POSTGRES_USER=odoo
volumes:
- /vol1/1000/docker/odoo19/db-data:/var/lib/postgresql/data
restart: always
web:
image: odoo:19.0
depends_on:
- db
ports:
- "8069:8069"
- "8072:8072"
volumes:
- /vol1/1000/docker/odoo19/data:/var/lib/odoo
- /vol1/1000/docker/odoo19/config:/etc/odoo
- /vol1/1000/docker/odoo19/addons:/mnt/extra-addons
environment:
- HOST=db
- USER=odoo
- PASSWORD=odoo_password_123
restart: always
四、 第三步:系统初始化
- 启动项目后,在浏览器访问:http://NAS_IP:8069。
- Master Password:系统生成的数据库主密码,请截图保存,用于后续备份数据库。
- Language:选择 Chinese (Simplified) / 简体中文。
- Country:选择 China。
- Demo Data:生产环境请勿勾选;测试环境建议勾选。
- 点击 Create Database,等待 2-3 分钟即可进入桌面。
五、 常见故障排除
- 报错:Internal Server Error
- 检查 Docker 日志。如果是数据库连接超时,说明 db-data 权限未正确开启。
- 报错:无法安装模块或上传附件
- 检查 data 文件夹权限,确保 Everyone 或 UID 101 有写权限。
- 性能卡顿
- 建议将 Odoo 部署在 SSD 存储卷上。机械硬盘在初始化大量小文件时速度极慢。
发表回复