引言

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

环境准备

  • 服务器已安装 Docker

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

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

部署步骤

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

    cd /path/to/directory/

    2. 加载 Docker 镜像

    • 01
    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 进行替换:

      • 01
      • 02
      • 03
      • 04
      • 05
      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 容器

      • 01
      • 02
      • 03
      • 04
      • 05
      • 06
      • 07
      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 企业版容器

      • 01
      • 02
      • 03
      • 04
      • 05
      • 06
      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 修改数据存储目录权限

        • 01
        • 02
        • 03
        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 现在已经可以正常使用,可进一步安装模块和进行系统配置。


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