本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

dockerdoo Docker 镜像下载 - 轩辕镜像

dockerdoo 镜像详细信息和使用指南

dockerdoo 镜像标签列表和版本信息

dockerdoo 镜像拉取命令和加速下载

dockerdoo 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

dockerdoo
iterativodo/dockerdoo

dockerdoo 镜像详细信息

dockerdoo 镜像标签列表

dockerdoo 镜像使用说明

dockerdoo 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

灵活的Odoo Docker镜像,适用于docker-compose、Kubernetes和开发容器环境,支持生产和开发两种部署模式。
2 收藏0 次下载activeiterativodo镜像

dockerdoo 镜像详细说明

dockerdoo 使用指南

dockerdoo 配置说明

dockerdoo 官方文档

Docker化Odoo (Dockerdoo) 镜像文档

镜像概述和主要用途

Dockerdoo是一个灵活且精简的Docker化Odoo项目,提供两种基于同一Dockerfile的部署方式:

  • 独立模式(Standalone):Odoo源代码和依赖完全包含在Docker镜像中,默认且推荐用于生产环境
  • 宿主模式(Hosted):Odoo源代码位于宿主机(./src/odoo目录)并挂载到容器内,适用于开发场景(需直接修改Odoo核心代码时)。

该镜像与VSCode深度集成以实现快速开发和调试,只需安装Remote Containers扩展即可。

核心功能和特性

  • 双部署模式:支持生产就绪的独立模式和开发友好的宿主模式
  • 多版本多架构支持:提供Odoo 15.0、16.0、17.0、18.0及master版本,适配linux/amd64和linux/arm64架构
  • 预构建镜像:通过GitHub Actions自动构建、测试和发布,可直接拉取使用
  • 灵活配置:通过环境变量和Compose覆盖文件实现多样化部署需求
  • 开发工具集成:支持VSCode Remote Containers,便于代码调试和开发
  • 自定义模块管理:支持挂载或内置自定义Odoo模块,满足业务扩展需求

使用场景和适用范围

  • 生产环境:采用独立模式,使用预构建镜像,确保部署稳定性和一致性
  • 开发环境:采用宿主模式,挂载本地Odoo源代码,实时修改并测试核心代码
  • 多架构部署:支持amd64和arm64架构,适用于不同硬件环境
  • CI/CD集成:可与docker-compose、Kubernetes及开发容器(devcontainers)配合使用,适应现代开发流程

详细的使用方法和配置说明

预构建镜像

针对不同Odoo版本(15.016.017.018.0master)和架构(linux/amd64linux/arm64)的预构建镜像,通过GitHub Actions自动构建、测试并发布至以下仓库:

  • GitHub Container Registryghcr.io/iterativo-git/dockerdoo:<odoo_version>(如ghcr.io/iterativo-git/dockerdoo:17.0
  • Docker Hubiterativodo/dockerdoo:<odoo_version>
  • Google Container Registrygcr.io/iterativo/dockerdoo:<odoo_version>

通常可直接拉取预构建镜像(确保Compose文件中设置image: iterativodo/dockerdoo:${ODOO_VERSION}.env文件定义ODOO_VERSION),无需本地构建,节省时间。

快速使用步骤

1. 克隆仓库

shell
git clone ***:iterativo-git/dockerdoo.git && cd dockerdoo

2. 配置环境

复制示例环境变量文件.env.example.env,并调整变量值,特别是ODOO_VERSION(Odoo版本)和PSQL_VERSION(PostgreSQL版本)。

3. 独立模式(默认,生产环境)

使用预构建镜像或构建包含Odoo源代码的镜像:

shell
# 确保.env文件中已设置ODOO_VERSION
docker-compose build # 可选:仅在不使用预构建镜像或修改Dockerfile时需要
docker-compose up -d

4. 宿主模式(开发环境)

需先将Odoo源代码克隆至./src/odoo目录:

shell
# 克隆指定版本的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

环境要求

  • Docker(Desktop或Engine版本)
  • Docker Compose
  • Git

配置说明

环境变量(.env文件)

.env文件(从.env.example复制)是核心配置,关键变量包括:

  • ODOO_VERSION:指定Odoo版本(如17.0),必须与预构建镜像标签或宿主模式下克隆的源代码版本匹配
  • PSQL_VERSION:PostgreSQL数据库版本(如16
  • POSTGRES_DBPOSTGRES_USERPOSTGRES_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),由入口脚本根据环境变量管理

更多环境变量可查看Dockerfileresources/entrypoint.sh文件。

构建参数

可通过--build-arg自定义Docker镜像构建:

shell
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)。

Docker Compose覆盖文件

通过组合多个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参数组合文件:

shell
# 宿主模式开发
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

自定义模块(./custom目录)

将自定义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配置中。

开发环境:挂载式vs内置式自定义模块

1. 挂载式模块(推荐本地开发)

  • 将自定义模块放在./custom目录(或其子目录)
  • 使用开发覆盖文件(如dev-hosted.ymldev-standalone.yml),将./custom目录挂载到容器内/mnt/extra-addons
  • Odoo直接使用宿主机代码,本地修改实时反映到运行中的容器(视修改内容可能需要重启Odoo或执行-u升级)
  • 通常将./custom目录(或其中特定模块)添加到.gitignore,避免提交到当前仓库(若模块在单独仓库管理)

2. 内置式模块(推荐生产镜像或共享): 如需创建包含自定义模块的独立镜像,需基于Dockerdoo基础镜像构建自定义镜像:

dockerfile
# 添加自定义模块的示例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}

构建自定义镜像:

shell
docker build -t my-custom-odoo:latest .

更新docker-compose.yml(或生产覆盖文件)使用自定义镜像:image: my-custom-odoo:latest

SSH密钥访问

基础docker-compose.yml将宿主机~/.ssh/目录挂载到容器内/opt/odoo/.ssh/,使容器内进程(如从私有Git仓库安装Python依赖)可使用本地SSH密钥进行身份验证。

暴露端口

  • 8069:Odoo HTTP接口
  • 8072:Odoo长轮询(Longpolling)端口

项目结构

bash
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等)

credits

主要基于以下项目的工作:

  • David Arnold(XOE Solutions)的dockery-odoo

借鉴了以下项目的思路:

  • Odoo(docker)
  • OCA(maintainer-quality-tools)
  • Ingeniería ADHOC(docker-odoo-adhoc)

开发中(WIP)

  • Swarm/Kubernetes适配(密钥管理等)

用户好评

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

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"