amd64/odoo注意:这是 odoo 官方镜像 的 amd64 架构构建的“每架构”仓库——更多信息,请参见官方镜像文档中的“非 amd64 架构?”和官方镜像常见问题中的“镜像源在 Git 中已更改,现在该怎么办?”。
维护者: Odoo
获取帮助: Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接19.0-20251008, 19.0, 19, latest
18.0-20251008, 18.0, 18
17.0-20251008, 17.0, 17
提交 issue 地址: [***]
支持的架构:(更多信息)
amd64, arm64v8, ppc64le
镜像 artifact 详情:
repo-info 仓库的 repos/odoo/ 目录 (历史记录)
(镜像元数据、传输大小等)
镜像更新:
official-images 仓库的 library/odoo 标签
official-images 仓库的 library/odoo 文件 (历史记录)
本描述的来源:
docs 仓库的 odoo/ 目录 (历史记录)
Odoo(前身为 OpenERP)是一套开源业务应用套件,采用 Python 编写并以 LGPL 许可证发布。该应用套件涵盖所有业务需求,从网站/电子商务到制造、库存和会计,所有功能无缝集成。这是首次有软件编辑器实现如此全面的功能覆盖。Odoo 是全球安装量最大的业务软件,全球有 200 万用户,从小型企业(1 名用户)到大型企业(30 万名用户)不等。
[***]
!logo
本镜像需要运行中的 PostgreSQL 服务器。
console$ docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:15
console$ docker run -p 8069:8069 --name odoo --link db:db -t amd64/odoo
运行 Postgres 的容器别名必须为 db,Odoo 才能连接到 Postgres 服务器。
console$ docker stop amd64/odoo $ docker start -a amd64/odoo
按上述方式创建 Odoo 容器时,Odoo 文件存储位于容器内部。若容器被删除,文件存储也会丢失。防止此问题的首选方法是使用 Docker 命名卷。
console$ docker run -v odoo-data:/var/lib/odoo -d -p 8069:8069 --name odoo --link db:db -t amd64/odoo
使用上述命令,名为 odoo-data 的卷即使在容器被删除后也会保留,并且可以通过执行相同命令重新使用。
作为卷挂载点的路径 /var/lib/odoo 必须与配置文件中或 CLI 参数中的 Odoo data_dir 匹配。
注意,同样的原则适用于 Postgresql 容器,可以使用命名卷在容器被删除时保留数据库。因此,数据库容器可以按以下方式启动(在 Odoo 容器之前):
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
当 PostgreSQL 服务器重启时,链接到该服务器的 Odoo 实例也必须重启,因为服务器地址已更改,链接会中断。
重启 PostgreSQL 服务器不会影响已创建的数据库。
服务器的默认配置文件(位于 /etc/odoo/odoo.conf)可以在启动时通过卷覆盖。假设您的自定义配置位于 /path/to/config/odoo.conf,则:
console$ docker run -v /path/to/config:/etc/odoo -p 8069:8069 --name odoo --link db:db -t amd64/odoo
请使用此配置模板编写您的自定义配置,因为我们已为在 Docker 容器中运行 Odoo 设置了一些参数。
您也可以直接在命令行中指定 Odoo 参数。这些参数必须在命令行中的 -- 关键字之后给出,如下所示:
console$ docker run -p 8069:8069 --name odoo --link db:db -t amd64/odoo -- --db-filter=odoo_db_.*
您可以将自己的 Odoo 插件挂载到 Odoo 容器内的 /mnt/extra-addons 目录:
console$ docker run -v /path/to/addons:/mnt/extra-addons -p 8069:8069 --name odoo --link db:db -t amd64/odoo
注意:尽管没有官方的 Odoo Enterprise Docker 镜像,但可以通过上述方法挂载 Enterprise 模块。
console$ docker run -p 8070:8069 --name odoo2 --link db:db -t amd64/odoo $ docker run -p 8071:8069 --name odoo3 --link db:db -t amd64/odoo
注意:若要正常使用邮件和报表功能,当主机端口与容器端口不同(例如 8070 和 8069)时,必须在 Odoo 中设置 设置->参数->系统参数(需要技术特性权限),将 web.base.url 设置为容器端口(例如 127.0.0.1:8069)。
通过以下环境变量可轻松连接到 postgres 服务器:
HOST:postgres 服务器地址。若使用 postgres 容器,设置为容器名称。默认为 db。PORT:postgres 服务器监听端口。默认为 5432。USER:Odoo 用于连接的 postgres 角色。若使用 postgres 容器,设置为与 POSTGRES_USER 相同的值。默认为 odoo。PASSWORD:Odoo 用于连接的 postgres 角色密码。若使用 postgres 容器,设置为与 POSTGRES_PASSWORD 相同的值。默认为 odoo。最简单的 compose.yaml 文件如下:
ymlservices: web: image: amd64/odoo:17.0 depends_on: - db ports: - "8069:8069" db: image: postgres:15 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=odoo - POSTGRES_USER=odoo
若默认 postgres 凭据不适用,可调整环境变量:
ymlservices: web: image: amd64/odoo:17.0 depends_on: - mydb ports: - "8069:8069" environment: - HOST=mydb - USER=odoo - PASSWORD=myodoo mydb: image: postgres:15 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=myodoo - POSTGRES_USER=odoo
最后一个示例展示如何:
./addons 的自定义插件.config/odoo.conf 的自定义配置文件odoo_pg_pass 的 secrets 文件,其中包含两个服务共享的 postgresql 密码ymlservices: web: image: amd64/odoo:17.0 depends_on: - db ports: - "8069:8069" volumes: - odoo-web-data:/var/lib/odoo - ./config:/etc/odoo - ./addons:/mnt/extra-addons environment: - PASSWORD_FILE=/run/secrets/postgresql_password secrets: - postgresql_password db: image: postgres:15 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD_FILE=/run/secrets/postgresql_password - POSTGRES_USER=odoo - PGDATA=/var/lib/postgresql/data/pgdata volumes: - odoo-db-data:/var/lib/postgresql/data/pgdata secrets: - postgresql_password volumes: odoo-web-data: odoo-db-data: secrets: postgresql_password: file: odoo_pg_pass
要启动 Odoo 实例,请进入您根据上述示例创建的 compose.yaml 文件所在目录,并执行:
consoledocker compose up -d
Odoo 镜像会定期更新以使用最新版本(每个 Odoo 版本每天夜间构建新版本)。请注意,以下内容仅关于从同一主版本的旧版本升级到最新版本,而从一个主版本升级到另一个主版本是更复杂的过程,需要详细的迁移脚本(参见 Odoo 升级页面 或旨在编写这些脚本的 社区项目)。
假设您从名为 old-odoo 的 Odoo 实例创建了数据库,并且希望从名为 new-odoo 的新 Odoo 实例访问此数据库(例如,因为您刚刚下载了更新的 Odoo 镜像)。
默认情况下,Odoo 16.0+ 使用文件存储(位于 /var/lib/odoo/filestore/)存储附件。您应通过运行以下命令在新 Odoo 实例中恢复此文件存储:
console$ docker run --volumes-from old-odoo -p 8070:8069 --name new-odoo --link db:db -t amd64/odoo
查看本镜像中包含的软件的许可证信息。
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能采用其他许可证(例如基础发行版中的 Bash 等,以及包含的主要软件的任何直接或间接依赖项)。
一些能够自动检测到的其他许可证信息可能位于 repo-info 仓库的 odoo/ 目录中。
对于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用都符合其中包含的所有软件的相关许可证。



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