Odoo(前身为OpenERP)是一套开源商业应用套件,集成了企业资源规划(ERP)、客户关系管理(CRM)、电子商务、人力资源管理、项目管理、会计、库存管理等多种功能模块,旨在为各类企业提供一体化的业务管理解决方案,支持用户根据需求灵活定制和扩展,凭借开源特性降低企业信息化成本,助力提升运营效率。
收藏数: 1.5千
下载次数: 47985050
类型:

library/odoo以下是当前支持的镜像标签及其 Dockerfile 链接:
19.0-20251008, 19.0, 19, latest18.0-20251008, 18.0, 1817.0-20251008, 17.0, 17amd64、arm64v8、ppc64lerepos/odoo/ 目录(历史记录)查看(包括元数据、传输大小等)。library/odoo 标签 或 文件(历史记录)跟踪。odoo/ 目录(历史记录)Odoo(前身为 OpenERP)是一套开源业务应用套件,采用 Python 开发,基于 LGPL 许可证发布。该套件覆盖从网站/电商到制造、库存、会计等全业务流程,且各模块无缝集成,是目前功能覆盖最全面的企业软件之一。全球有超过 200 万用户使用 Odoo,涵盖从单人小微企业到 30 万用户的大型企业。
官网:[***]
使用 Odoo 镜像需配合运行中的 PostgreSQL 服务器。
先运行 PostgreSQL 容器,设置数据库用户、密码和初始数据库:
console$ docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:15
通过 --link 连接到 PostgreSQL 容器(容器别名必须为 db,Odoo 才能自动识别):
console$ docker run -p 8069:8069 --name odoo --link db:db -t odoo
启动后,访问 `[***] 即可打开 Odoo。
console$ docker stop odoo
console$ docker start -a odoo
默认情况下,Odoo 的文件存储(如附件)位于容器内部,删除容器会丢失数据。推荐使用 命名卷 持久化数据:
console$ docker run -v odoo-data:/var/lib/odoo -d -p 8069:8069 --name odoo --link db:db -t odoo
odoo-data 为命名卷,即使删除容器也会保留数据,下次启动时可复用。/var/lib/odoo 需与 Odoo 配置文件中的 data_dir 一致。同理,为 PostgreSQL 数据目录挂载命名卷,避免数据库丢失:
console$ docker run -d -v odoo-db:/var/lib/postgresql/data -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:15
Odoo 默认配置文件位于 /etc/odoo/odoo.conf,可通过挂载本地配置文件覆盖:
console$ docker run -v /path/to/your/config:/etc/odoo -p 8069:8069 --name odoo --link db:db -t odoo
配置文件模板参考:官方模板(已包含 Docker 环境必要参数)。
在命令末尾添加 -- 后接 Odoo 参数,例如过滤数据库:
console$ docker run -p 8069:8069 --name odoo --link db:db -t odoo -- --db-filter=odoo_db_.*
将本地插件目录挂载到容器的 /mnt/extra-addons,Odoo 会自动加载:
console$ docker run -v /path/to/your/addons:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t odoo
注意:即使没有官方企业版镜像,也可通过此方式挂载 Odoo Enterprise 模块。
通过映射不同主机端口,可启动多个 Odoo 实例(均连接同一 PostgreSQL):
console$ docker run -p 8070:8069 --name odoo2 --link db:db -t odoo # 第二个实例,端口 8070 $ docker run -p 8071:8069 --name odoo3 --link db:db -t odoo # 第三个实例,端口 8071
注意:若主机端口与容器端口不同(如 8070:8069),需在 Odoo 中设置
Settings->Parameters->System Parameters(需开启开发者模式),将web.base.url设为容器端口(如127.0.0.1:8069),否则邮件、报表功能可能异常。
通过环境变量自定义 PostgreSQL 连接信息(无需修改配置文件):
| 变量名 | 说明 | 默认值 |
|---|---|---|
HOST | PostgreSQL 服务器地址(容器名或 IP) | db |
PORT | PostgreSQL 端口 | 5432 |
USER | 数据库连接用户(需与 PostgreSQL 配置一致) | odoo |
PASSWORD | 数据库连接密码(需与 PostgreSQL 配置一致) | odoo |
示例:连接自定义 PostgreSQL 服务器
console$ docker run -e HOST=192.168.1.100 -e USER=myuser -e PASSWORD=mypass -p 8069:8069 --name odoo -t odoo
使用 compose.yaml 简化多容器管理,以下是常见场景配置。
yamlservices: web: image: odoo:17.0 # 指定 Odoo 版本 depends_on: [db] # 依赖 db 服务 ports: ["8069:8069"] db: image: postgres:15 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=odoo - POSTGRES_USER=odoo
yamlservices: web: image: odoo:17.0 depends_on: [mydb] ports: ["8069:8069"] environment: - HOST=mydb # 连接名为 mydb 的 PostgreSQL 服务 - USER=odoo # 数据库用户 - PASSWORD=myodoo # 数据库密码 mydb: image: postgres:15 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=myodoo # 与 web 服务的 PASSWORD 一致 - POSTGRES_USER=odoo # 与 web 服务的 USER 一致
yamlservices: web: image: odoo:17.0 depends_on: [db] ports: ["8069:8069"] volumes: - odoo-web-data:/var/lib/odoo # Odoo 数据卷 - ./config:/etc/odoo # 挂载自定义配置(本地 ./config 目录) - ./addons:/mnt/extra-addons # 挂载自定义插件(本地 ./addons 目录) environment: - PASSWORD_FILE=/run/secrets/postgresql_password # 从 secret 文件读取密码 secrets: - postgresql_password db: image: postgres:15 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD_FILE=/run/secrets/postgresql_password # 从 secret 文件读取密码 - POSTGRES_USER=odoo - PGDATA=/var/lib/postgresql/data/pgdata # PostgreSQL 数据路径 volumes: - odoo-db-data:/var/lib/postgresql/data/pgdata # PostgreSQL 数据卷 secrets: - postgresql_password volumes: odoo-web-data: # Odoo 数据卷(自动创建) odoo-db-data: # PostgreSQL 数据卷(自动创建) secrets: postgresql_password: file: odoo_pg_pass # 本地密码文件(仅含密码字符串)
启动命令:在 compose.yaml 所在目录执行
console$ docker compose up -d
Odoo 镜像每日更新(同步 nightly 版本)。以下步骤适用于同一主版本内的升级(如从 17.0 旧版本升级到 17.0 最新版本),跨主版本升级需参考 Odoo 官方升级文档 或 OpenUpgrade 项目。
old-odoo,需保留其文件存储(Odoo 16.0+ 附件默认存储在 /var/lib/odoo/filestore/)。--volumes-from 复用旧实例的文件存储:
console$ docker run --volumes-from old-odoo -p 8070:8069 --name new-odoo --link db:db -t odoo
镜像中 Odoo 软件的许可证信息见 Odoo 源码仓库 LICENSE 文件。
Docker 镜像可能包含基础系统(如 Bash)及依赖软件,其许可证可能不同。更多信息可参考 repo-info 仓库的 odoo/ 目录。
使用前请确保遵守所有软件的许可证要求。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务