引言

Odoo 是一款功能强大的开源 ERP 系统,广泛应用于企业管理。本文将介绍如何在 Docker 环境中部署 Odoo 18 企业版,并使用 PostgreSQL 16 作为数据库。

环境准备

  • 服务器已安装 Docker

  • 打开防火墙端口(本文使用9007,9008)

  • 已准备好 Odoo 18 企业版PostgreSQL 16 的 Docker 镜像

部署步骤

1. 进入存放 Odoo 18 企业版镜像的目录

cd /path/to/directory/

2. 加载 Docker 镜像

sudo docker load -i odoo18_enterprise_v2.tar
sudo docker load -i postgres16.tar

此步骤将 Odoo 18 企业版和 PostgreSQL 16 的镜像导入 Docker。

3. 查看 Docker 镜像

docker images

4. 给镜像打标签

运行以下命令,根据 第 3 步 查到的 IMAGE ID 进行替换:

sudo docker tag <postgres16_image_id> postgres16:v1
sudo docker tag <odoo18_image_id> odoo18:enterprise_v2

例:
sudo tag 2490d47edbe0 postgres16:v1
sudo tag 7caa9fe9235e odoo18:enterprise_v2

请将 <postgres16_image_id><odoo18_image_id> 替换为 docker images 查询到的 PostgreSQL 16 和 Odoo 18 企业版的 IMAGE ID。

5. 运行 PostgreSQL 16 容器

sudo docker run -d \
    -v /opt/1panel/apps/odoo18/postgres16:/var/lib/postgresql/data:rw \
    -p 9008:5432 \
    -e POSTGRES_USER=odoo \
    -e POSTGRES_PASSWORD=odoo \
    -e POSTGRES_DB=postgres \
    --restart unless-stopped \
    --name postgres16 postgres16:v1

此命令启动 PostgreSQL 16 容器,并设置:

  • 数据存储目录:/opt/1panel/apps/odoo18/postgres16(自定义)

  • 端口映射:9008 -> 5432

  • 数据库用户/密码:odoo/odoo

  • 数据库名称:postgres

  • 容器崩溃或重启时自动恢复 restart unless-stopped

6. 运行 Odoo 18 企业版容器

sudo docker run -d \
    -v /opt/1panel/apps/odoo18/odoo18:/mnt/extra-addons:rw \
    -v /opt/1panel/apps/odoo18/data:/var/lib/odoo:rw \
    -t -p 9009:8069 \
    --restart unless-stopped \
    --name odoo18 \
    --link postgres16:db odoo18:enterprise_v2

此命令启动 Odoo 18 企业版容器,并设置:

  • Odoo 插件目录:/opt/1panel/apps/odoo18/odoo18(自定义)

  • Odoo 数据存储目录:/opt/1panel/apps/odoo18/data(自定义)

  • 端口映射:9009 -> 8069

  • 关联 PostgreSQL 容器:--link postgres16:db

  • 容器崩溃或重启时自动恢复 restart unless-stopped

7. 修改 Odoo 数据存储权限

首先,查询 Odoo 容器的用户 ID 和组 ID:

sudo docker exec -it odoo18 id

然后,使用查询到的 UID:GID 修改数据存储目录权限

sudo chown -R <UID>:<GID> /opt/1panel/apps/odoo18/data/ 

例如:
sudo chown -R 100:101 /opt/1panel/apps/odoo18/data/

请将 <UID><GID> 替换为 docker exec -it odoo18 id 查询到的实际值。

8. 重启 Odoo 18 容器

sudo docker restart odoo18

使修改生效。

访问 Odoo 18

Odoo 18 运行后,可以通过浏览器访问:

http://<服务器IP>:9009

结论

通过上述步骤,我们成功在 Docker 环境中部署了 Odoo 18 企业版,并配置了 PostgreSQL 16 作为数据库。Odoo 现在已经可以正常使用,可进一步安装模块和进行系统配置。


##本文涉及的相关文件需自行查找,或可联系博主获取详细信息。