如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
注意:这是 https://hub.docker.com/_/odoo 的 arm64v8 架构构建的“按架构”仓库——更多信息,请参见官方镜像文档中的“https://github.com/docker-library/official-images#architectures-other-than-amd64%E2%80%9D%E5%92%8C%E5%AE%98%E6%96%B9%E9%95%9C%E5%83%8F%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E4%B8%AD%E7%9A%84%E2%80%9Chttps://github.com/docker-library/faq#an-images-source-changed-in-git-now-what%E2%80%9D%E3%80%82
-** 维护者 **:
https://github.com/odoo/docker
-** 获取帮助 **:
Docker 社区 Slack、Server Fault、Unix & Linux 或 Stack Overflow
Dockerfile 链接https://github.com/odoo/docker/blob/f24d0401287edf563bacf60de5f08f8edee8cf19/19.0/Dockerfile
https://github.com/odoo/docker/blob/f24d0401287edf563bacf60de5f08f8edee8cf19/18.0/Dockerfile
https://github.com/odoo/docker/blob/f24d0401287edf563bacf60de5f08f8edee8cf19/17.0/Dockerfile
-** 问题反馈 **:
https://github.com/odoo/docker/issues?q=
-** 支持的架构 **:(https://github.com/docker-library/official-images#architectures-other-than-amd64)
https://hub.docker.com/r/amd64/odoo/%E3%80%81https://hub.docker.com/r/arm64v8/odoo/%E3%80%81https://hub.docker.com/r/ppc64le/odoo/
-** 镜像 artifact 详情 **:
https://github.com/docker-library/repo-info/blob/master/repos/odoo%EF%BC%88https://github.com/docker-library/repo-info/commits/master/repos/odoo%EF%BC%89
(镜像元数据、传输大小等)
-** 镜像更新 **:
https://github.com/docker-library/official-images/issues?q=label%3Alibrary%2Fodoo
https://github.com/docker-library/official-images/blob/master/library/odoo%EF%BC%88https://github.com/docker-library/official-images/commits/master/library/odoo%EF%BC%89
-** 本描述的来源 **:
https://github.com/docker-library/docs/tree/master/odoo%EF%BC%88https://github.com/docker-library/docs/commits/master/odoo%EF%BC%89
Odoo(前身为 OpenERP)是一套开源业务应用套件,采用 Python 编写并以 LGPL 许可证发布。该应用套件涵盖所有业务需求,从网站/电商到制造、库存和会计,所有功能无缝集成。这是首次有软件编辑器实现如此全面的功能覆盖。Odoo 是全球安装量最大的业务软件,全球有 200 万用户使用,从小型企业(1 名用户)到大型企业(30 万名用户)不等。
[***]
!https://raw.githubusercontent.com/docker-library/docs/a***f9798f9c5e51e92409ebf4d5b39988fd13/odoo/logo.png
本镜像需要运行中的 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 arm64v8/odoo
运行 Postgres 的容器别名必须为 db,Odoo 才能连接到 Postgres 服务器。
console$ docker stop arm64v8/odoo $ docker start -a arm64v8/odoo
按上述方式创建 Odoo 容器时,Odoo 文件存储位于容器内部。若容器被删除,文件存储也会丢失。防止此问题的推荐方法是使用 Docker 命名卷。
console$ docker run -v odoo-data:/var/lib/odoo -d -p 8069:8069 --name odoo --link db:db -t arm64v8/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 arm64v8/odoo
请使用https://github.com/odoo/docker/blob/master/17.0/odoo.conf%E7%BC%96%E5%86%99%E8%87%AA%E5%AE%9A%E4%B9%89%E9%85%8D%E7%BD%AE%EF%BC%8C%E5%9B%A0%E4%B8%BA%E6%88%91%E4%BB%AC%E5%B7%B2%E4%B8%BA%E5%9C%A8 Docker 容器中运行 Odoo 设置了一些参数。
也可以直接在命令行中指定 Odoo 参数。这些参数必须在命令行中的 -- 关键字后给出,如下所示:
console$ docker run -p 8069:8069 --name odoo --link db:db -t arm64v8/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 arm64v8/odoo
注意:尽管没有官方的 Odoo Enterprise Docker 镜像,但可以通过上述方法挂载 Enterprise 模块。
console$ docker run -p 8070:8069 --name odoo2 --link db:db -t arm64v8/odoo $ docker run -p 8071:8069 --name odoo3 --link db:db -t arm64v8/odoo
注意:若要正常使用邮件和报表功能,当主机和容器端口不同(例如 8070 和 8069)时,必须在 Odoo 中设置 设置->参数->系统参数(需要技术特性),将 web.base.url 设置为容器端口(例如 127.0.0.1:8069)。
通过以下环境变量可以轻松连接到 PostgreSQL 服务器:
HOST:PostgreSQL 服务器地址。若使用 PostgreSQL 容器,设置为容器名称。默认为 db。PORT:PostgreSQL 服务器监听端口。默认为 5432。USER:Odoo 用于连接的 PostgreSQL 角色。若使用 PostgreSQL 容器,设置为与 POSTGRES_USER 相同的值。默认为 odoo。PASSWORD:Odoo 用于连接的 PostgreSQL 角色密码。若使用 PostgreSQL 容器,设置为与 POSTGRES_PASSWORD 相同的值。默认为 odoo。最简单的 compose.yaml 文件如下:
ymlservices: web: image: arm64v8/odoo:17.0 depends_on: - db ports: - "8069:8069" db: image: postgres:15 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=odoo - POSTGRES_USER=odoo
若默认 PostgreSQL 凭据不适用,可以调整环境变量:
ymlservices: web: image: arm64v8/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: arm64v8/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 升级页面 或旨在编写这些脚本的 https://github.com/OCA/OpenUpgrade%EF%BC%89%E3%80%82
假设你从名为 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 arm64v8/odoo
查看本镜像中包含的软件的https://github.com/odoo/odoo/blob/master/LICENSE%E3%80%82
与所有 Docker 镜像一样,这些镜像可能还包含其他软件,这些软件可能采用其他许可证(例如基础发行版中的 Bash 等,以及主要软件的任何直接或间接依赖项)。
一些能够自动检测到的额外许可证信息可能位于 https://github.com/docker-library/repo-info/tree/master/repos/odoo 中。
对于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用符合其中包含的所有软件的相关许可证。
以下是 arm64v8/odoo 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务