Mint System Odoo 镜像是对官方Odoo镜像的改进版本,基于特定修订版本构建,确保构建可重复性。该镜像优化了包管理、配置方式、插件处理等核心功能,同时集成多种开发与运维工具,适合Odoo应用的部署、测试及日常管理。
odoo.conf配置,无需手动修改配置文件19.0.20251008、19.018.0.20251008、18.017.0.20251008、17.016.0.20251008、16.0该镜像支持基础配置与高度自定义配置,可通过环境变量灵活调整。
以下是最小化compose.yml配置示例:
ymlservices: odoo: container_name: odoo image: mintsystem/odoo:18.0.20251008 depends_on: - db environment: PGHOST: db PGUSER: odoo PGPASSWORD: odoo ports: - "127.0.0.1:8069:8069" volumes: - odoo-data:/var/lib/odoo db: container_name: db image: postgres:14-alpine environment: POSTGRES_USER: odoo POSTGRES_PASSWORD: odoo PGDATA: /var/lib/postgresql/data/pgdata volumes: - db-data:/var/lib/postgresql/data/pgdata volumes: odoo-data: db-data:
以下compose.yml展示完整自定义配置选项:
ymlservices: odoo: container_name: odoo image: mintsystem/odoo:18.0.20251008 depends_on: db: condition: service_healthy environment: PGHOST: db PGUSER: odoo PGPASSWORD: odoo PGPORT: 5432 DB_NAME: odoo DB_MAXCONN: 128 PGSSLMODE: verify-ca PGSSLROOTCERT: /mnt/postgres-secret/ca.crt SMTP_SERVER: mail.infomaniak.com SMTP_PORT: 587 SMTP_SSL: True SMTP_USER: odoo@yourcompany.com SMTP_PASSWORD: ***** EMAIL_FROM: odoo@yourcompany.com MAIL_BOUNCE_ALIAS: bounce MAIL_CATCHALL_ALIAS: reply MAIL_CATCHALL_DOMAIN: yourcompany.com MAIL_DEFAULT_FROM: odoo MAIL_ALIAS_DOMAIN: yourcompany.com ODOO_MAIL_SMTP_HOST: mail.infomaniak.com ODOO_MAIL_SMTP_PORT: 587 ODOO_MAIL_SMTP_ENCRYPTION: starttls ODOO_MAIL_SMTP_FROM_FILTER: odoo@yourcompany.com ODOO_MAIL_IMAP_HOST: mail.infomaniak.com ODOO_MAIL_IMAP_PORT: 993 ODOO_MAIL_IMAP_SSL: True ODOO_MAIL_USERNAME: odoo@yourcompany.com ODOO_MAIL_PASSWORD: ***** GIT_SSH_PUBLIC_KEY: "ssh-ed25519 BBBBC3NzaC1lZDI1NTE5BBBBIDR9Ibi0mATjCyx1EYg594oFkY0rghtgo+pnFHOvAcym Mint-System-Project-MCC@github.com" GIT_SSH_PRIVATE_KEY: "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLQpiM0JsYm5OemFDMXJaWGt0ZGpFQUFBQUFCRzV2Ym1VQUFBQUVibTl1WlFBQUFBQUFBQUFCQUFBQU13QUFBQXR6YzJndFpXClF5TlRVeE9RQUFBQ0EwZlNHNHRKZ0U0d3NzZFJHSU9mZUtCWkdOSzRJYllLUHFaeFJ6cndITXBnQUFBS2k1WkJhRnVXUVcKaFFBQUFBdHpjMmd0WldReU5UVXhPUUFBQUNBMGZTRzR0SmdFNHdzc2RSR0lPZmVLQlpTks0SWJZS1BxWnhSenJ3SE1wZwowQkFnTT0KLS0tLS1FTkQgT1BFTlNTSCBQUklWQVRFIEtFWS0tLS0tCg==" GITHUB_USERNAME: bot-mintsys GITHUB_PAT: ***** GITLAB_URL: https://gitlab.com GITLAB_USERNAME: bot-mintsys GITLAB_PAT: ***** FORGEJO_URL: https://codeberg.org FORGEJO_USERNAME: bot-mintsys FORGEJO_PAT: ***** ADDONS_GIT_REPOS: "git@github.com:Mint-System/Odoo-Apps-Server-Tools.git#16.0,git@github.com:OCA/server-tools.git#16.0" ODOO_ADDONS_PATH: /mnt/addons/,/mnt/enterprise/,/mnt/oca/,/mnt/themes/ ODOO_DATABASE: "16.0" ODOO_INIT_LOGIN: odoo ODOO_INIT_PASSWORD: ***** ODOO_INIT_LANG: de_CH ODOO_INIT_ADDONS: server_environment_ir_config_parameter RUNNING_ENV: production WITHOUT_DEMO: False PYTHON_INSTALL: prometheus-client SERVER_WIDE_MODULES: session_db,module_change_auto_install SESSION_DB_URI: postgres://odoo:odoo@db/16.0 PROXY_MODE: False LOG_LEVEL: debug MAX_CRON_THREADS: 4 LIST_DB: True LOG_DB: True LOG_HANDLER: [':INFO'] LOGFILE: None ADMIN_PASSWD: ***** DB_FILTER: ^%d$ WORKERS: 4 LIMIT_REQUEST: 16384 LIMIT_TIME_CPU: 300 LIMIT_TIME_REAL: 600 LIMIT_MEMORY_HARD: 2684354560 LIMIT_MEMORY_SOFT: 2147483648 LIMIT_MEMORY_HARD_GEVENT: 1048579 LIMIT_MEMORY_SOFT_GEVENT: 1048576 MODULE_AUTO_INSTALL_DISABLED: odoo_test_xmlrunner AUTO_UPDATE_MODULES: True TEST_ADDONS_DIR: /mnt/oca/partner-contact TEST_INCLUDE: partner_firstname TEST_EXCLUDE: partner_fax AUTO_UPDATE_TRANSLATIONS: True AUTO_UPDATE_MODULES_LIST: True ADDITIONAL_ODOO_RC: "syslog = True" IR_CONFIG_PARAMETER: "web.base.url = https://odoo.example.com" ports: - "127.0.0.1:8069:8069" volumes: - odoo-data:/var/lib/odoo - ./addons:/mnt/addons - ./oca:/mnt/oca - ./enterprise:/mnt/enterprise - ./themes:/mnt/themes db: container_name: db image: postgres:14-alpine environment: POSTGRES_USER: odoo POSTGRES_PASSWORD: odoo PGDATA: /var/lib/postgresql/data/pgdata volumes: - db-data:/var/lib/postgresql/data/pgdata healthcheck: test: ["CMD-SHELL", "pg_isready -U odoo -d $ODOO_DATABASE"] interval: 5s timeout: 5s retries: 5 volumes: odoo-data: db-data:
该镜像设计了完整的生命周期管理,包括初始化、启动、执行、分析和测试阶段。
容器启动前可通过以下脚本初始化数据库和插件:
下载Odoo企业版模块:
bashdocker compose exec odoo download-git-archive
克隆插件仓库:
bashdocker compose exec odoo clone-git-addons
初始化Odoo数据库:
bashdocker compose exec odoo init-db
容器启动时,entrypoint.sh脚本将自动执行以下步骤:
aggregate-git-repos克隆模块仓库template-odoo-rc生成odoo.conf配置文件set-addons-path组装插件路径install-python-packages安装Python依赖update-modules更新模块update-modules-list更新模块列表update-translations更新翻译容器运行中可执行以下操作管理模块:
安装模块:
bashdocker compose exec odoo init-module partner_firstname
更新指定模块:
bashdocker compose exec odoo update-module partner_firstname
更新所有模块:
bashdocker compose exec odoo update-modules
更新模块列表:
bashdocker compose exec odoo update-modules-list
更新翻译:
bashdocker compose exec odoo update-translations
使用内置manifestoo工具查询模块清单文件,例如列出所有模块:
bashdocker exec odoo bash -c "manifestoo --select-found list --separator=,"
执行以下步骤运行模块测试并生成覆盖率报告:
准备测试环境:
bashdocker exec odoo setup-tests
运行测试:
bashdocker exec odoo run-tests
| 变量名 | 描述 | 默认值 |
|---|---|---|
PGHOST | 数据库容器名称 | - |
PGUSER | 数据库用户名 | - |
PGPASSWORD | 数据库用户密码 | - |
PGPORT | PostgreSQL端口 | 5432 |
DB_NAME | 数据库名称 | - |
DB_MAXCONN | 最大数据库连接数 | 64 |
PGSSLMODE | SSL连接模式 | prefer |
PGSSLROOTCERT | SSL根证书路径 | - |
| 变量名 | 描述 | 默认值 |
|---|---|---|
SMTP_SERVER | SMTP服务器地址 | - |
SMTP_PORT | SMTP端口 | - |
SMTP_SSL | 是否启用SSL | - |
SMTP_USER | SMTP用户名 | - |
SMTP_PASSWORD | SMTP密码 | - |
EMAIL_FROM | 发件人*** | - |
| 变量名 | 描述 | 默认值 |
|---|---|---|
MAIL_BOUNCE_ALIAS | 退信别名 | - |
MAIL_CATCHALL_ALIAS | 回复别名 | - |
MAIL_CATCHALL_DOMAIN | 回复域名 | - |
MAIL_DEFAULT_FROM | 默认发件人名称 | odoo |
MAIL_ALIAS_DOMAIN | 别名域名 | - |
| 变量名 | 描述 | 默认值 |
|---|---|---|
ODOO_MAIL_SMTP_HOST | SMTP主机 | - |
ODOO_MAIL_SMTP_PORT | SMTP端口 | 587 |
ODOO_MAIL_SMTP_ENCRYPTION | 加密方式 | starttls |
ODOO_MAIL_SMTP_FROM_FILTER | 发件人过滤 | "" |
ODOO_MAIL_IMAP_HOST | IMAP主机 | - |
ODOO_MAIL_IMAP_PORT | IMAP端口 | 993 |
ODOO_MAIL_IMAP_SSL | 是否启用IMAP SSL | True |
ODOO_MAIL_USERNAME | ***用户名 | - |
ODOO_MAIL_PASSWORD | ***密码 | - |
| 变量名 | 描述 | 默认值 |
|---|---|---|
GIT_SSH_PUBLIC_KEY | SSH公钥,用于Git克隆 | - |
GIT_SSH_PRIVATE_KEY | Base64编码的SSH私钥(生成方式:`cat ~/.ssh/id_ed2551 | base64 -w0`) |
GITHUB_USERNAME | GitHub用户名 | - |
GITHUB_PAT | GitHub访问令牌 | - |
GITLAB_URL | GitLab实例URL | https://gitlab.com |
GITLAB_USERNAME | GitLab用户名 | - |
GITLAB_PAT | GitLab访问令牌 | - |
FORGEJO_URL | Forgejo实例URL | https://codeberg.org |
FORGEJO_USERNAME | Forgejo用户名 | - |
FORGEJO_PAT | Forgejo访问令牌 | - |
ADDONS_GIT_REPOS | 逗号分隔的Git仓库列表(格式:仓库URL#分支) | - |
| 变量名 | 描述 | 默认值 |
|---|---|---|
ODOO_ADDONS_PATH | 插件路径列表(逗号分隔) | /mnt/extra-addons,/opt/odoo/enterprise,/var/lib/odoo/git,$TEST_ADDONS_DIR,/opt/odoo/addons |
| 变量名 | 描述
以下是 mintsystem/odoo 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务