本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Dockerdoo是一个灵活且精简的Docker化Odoo项目,提供两种基于同一Dockerfile的部署方式:
./src/odoo目录)并挂载到容器内,适用于开发场景(需直接修改Odoo核心代码时)。该镜像与VSCode深度集成以实现快速开发和调试,只需安装Remote Containers扩展即可。
针对不同Odoo版本(15.0、16.0、17.0、18.0、master)和架构(linux/amd64、linux/arm64)的预构建镜像,通过GitHub Actions自动构建、测试并发布至以下仓库:
ghcr.io/iterativo-git/dockerdoo:<odoo_version>(如ghcr.io/iterativo-git/dockerdoo:17.0)iterativodo/dockerdoo:<odoo_version>gcr.io/iterativo/dockerdoo:<odoo_version>通常可直接拉取预构建镜像(确保Compose文件中设置image: iterativodo/dockerdoo:${ODOO_VERSION}且.env文件定义ODOO_VERSION),无需本地构建,节省时间。
git clone ***:iterativo-git/dockerdoo.git && cd dockerdoo
复制示例环境变量文件.env.example为.env,并调整变量值,特别是ODOO_VERSION(Odoo版本)和PSQL_VERSION(PostgreSQL版本)。
使用预构建镜像或构建包含Odoo源代码的镜像:
# 确保.env文件中已设置ODOO_VERSION docker-compose build # 可选:仅在不使用预构建镜像或修改Dockerfile时需要 docker-compose up -d
需先将Odoo源代码克隆至./src/odoo目录:
# 克隆指定版本的Odoo源代码(以17.0为例) git clone --depth=1 -b 17.0 ***:odoo/odoo.git src/odoo # 确保.env文件中的ODOO_VERSION与克隆的源代码版本一致 docker-compose -f docker-compose.yml -f hosted.yml build # 通常需要构建 docker-compose -f docker-compose.yml -f hosted.yml up -d
.env文件(从.env.example复制)是核心配置,关键变量包括:
ODOO_VERSION:指定Odoo版本(如17.0),必须与预构建镜像标签或宿主模式下克隆的源代码版本匹配PSQL_VERSION:PostgreSQL数据库版本(如16)POSTGRES_DB、POSTGRES_USER、POSTGRES_PASSWORD:数据库凭据ADMIN_PASSWORD:Odoo新数据库的超级管理员密码PIP_AUTO_INSTALL=1:设为1时,启动时自动安装自定义模块的Python依赖UPGRADE_ODOO=1:设为1时,启动时执行odoo -u all(升级所有模块)RUN_TESTS=1:设为1时,启动时运行Odoo测试(可通过WITHOUT_TEST_TAGS排除特定测试标签)ODOO_RC:容器内Odoo配置文件路径(默认/etc/odoo/odoo.conf),由入口脚本根据环境变量管理更多环境变量可查看Dockerfile和resources/entrypoint.sh文件。
可通过--build-arg自定义Docker镜像构建:
docker-compose build --build-arg PYTHON_VERSION=3.11-slim --build-arg ODOO_VERSION=17.0
可用参数(详见Dockerfile):PYTHON_VERSION(Python版本)、OS_VARIANT(操作系统变体)、ODOO_VERSION(Odoo版本)、WKHTMLTOX_VERSION(WKHTMLToX版本)、APP_UID(应用用户ID)、APP_GID(应用用户组ID)。
通过组合多个Compose文件实现不同配置:
docker-compose.yml:基础配置(独立模式)hosted.yml:宿主模式覆盖(挂载./src/odoo目录)dev-standalone.yml:独立模式开发工具(如--dev=all、WDB调试)dev-hosted.yml:宿主模式开发工具test-env.yml:运行Odoo测试配置(--test-enable --stop-after-init)使用-f参数组合文件:
# 宿主模式开发 docker-compose -f docker-compose.yml -f hosted.yml -f dev-hosted.yml up # 运行测试(独立模式) docker-compose -f docker-compose.yml -f test-env.yml up
将自定义Odoo模块放在./custom/目录的子目录中(如./custom/my_cool_module/、./custom/oca_addons/web/)。
入口脚本entrypoint.sh会运行getaddons.py,扫描${ODOO_EXTRA_ADDONS}路径(默认/mnt/extra-addons,即docker-compose.yml中挂载的./custom目录),查找包含__manifest__.py或__openerp__.py的有效模块目录,并将其添加到Odoo的addons_path配置中。
1. 挂载式模块(推荐本地开发):
./custom目录(或其子目录)dev-hosted.yml或dev-standalone.yml),将./custom目录挂载到容器内/mnt/extra-addons-u升级)./custom目录(或其中特定模块)添加到.gitignore,避免提交到当前仓库(若模块在单独仓库管理)2. 内置式模块(推荐生产镜像或共享): 如需创建包含自定义模块的独立镜像,需基于Dockerdoo基础镜像构建自定义镜像:
# 添加自定义模块的示例Dockerfile ARG ODOO_VERSION=18.0 # 替换为所需版本 FROM iterativodo/dockerdoo:${ODOO_VERSION} # 设置标准环境变量(可被覆盖) ENV ODOO_EXTRA_ADDONS=/mnt/extra-addons # 切换至root用户进行安装操作 USER root # 从本地目录复制自定义模块(假设模块在./my_addons目录) COPY --chown=${ODOO_USER}:${ODOO_USER} ./my_addons ${ODOO_EXTRA_ADDONS}/my_addons # 安装自定义模块的Python依赖 RUN apt-get update && apt-get install -y --no-install-recommends build-essential \ && find ${ODOO_EXTRA_ADDONS}/my_addons -name 'requirements.txt' -exec pip3 --no-cache-dir install -r {} \; \ && apt-get purge -y --auto-remove build-essential \ && rm -rf /var/lib/apt/lists/* # 切换回默认odoo用户 USER ${ODOO_USER}
构建自定义镜像:
docker build -t my-custom-odoo:latest .
更新docker-compose.yml(或生产覆盖文件)使用自定义镜像:image: my-custom-odoo:latest
基础docker-compose.yml将宿主机~/.ssh/目录挂载到容器内/opt/odoo/.ssh/,使容器内进程(如从私有Git仓库安装Python依赖)可使用本地SSH密钥进行身份验证。
8069:Odoo HTTP接口8072:Odoo长轮询(Longpolling)端口your-project/ ├── resources/ # 容器内使用的脚本(entrypoint.sh、getaddons.py等) ├── src/ │ └── odoo/ # Odoo源代码(仅宿主模式需要) ├── custom/ # 自定义Odoo模块(放在子目录中) │ ├── my_module_1/ │ └── my_module_2/ ├── .github/ # GitHub Actions工作流(CI/CD) ├── .env.example # 环境变量示例文件(复制为.env使用) ├── .env # 本地环境变量(Git忽略) ├── Dockerfile # Odoo镜像构建文件 ├── docker-compose.yml # 基础Compose配置 ├── hosted.yml # 宿主模式覆盖配置 ├── dev-standalone.yml # 独立模式开发覆盖配置 ├── dev-hosted.yml # 宿主模式开发覆盖配置 ├── test-env.yml # 测试环境覆盖配置 └── ... # 其他文件(.gitignore、README.md等)
主要基于以下项目的工作:
借鉴了以下项目的思路:
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429