bitnamicharts/odooOdoo 是一个开源 ERP(企业资源规划)和 CRM(客户关系管理)平台,前身为 OpenERP,可整合销售、供应链、财务、项目管理等多种业务流程。Bitnami Odoo 镜像是由 Bitnami 打包的容器化版本,旨在简化 Odoo 在 Kubernetes 集群中的部署与管理,通过 Helm 包管理器提供快速配置和扩展能力。
Odoo 官方概述
商标说明:本软件列表由 Bitnami 打包,所提及的商标分属各自公司所有,使用不代表任何关联或背书。
自 2025 年 8 月 28 日起,Bitnami 将升级其公共镜像目录,推出 Bitnami Secure Images 计划,提供精选的强化安全镜像。过渡要点包括:
docker.io/bitnamilegacy 仓库,不再接收更新详细信息参见 Bitnami Secure Images 公告。
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/odoo
指定仓库和参数安装:
consolehelm install my-release oci://REGISTRY_NAME/REPOSITORY_NAME/odoo \ --set odooEmail=*** \ --set odooPassword=StrongPassword \ --set postgresql.enabled=false \ --set externalDatabase.host=db-host
替换
REGISTRY_NAME和REPOSITORY_NAME为实际仓库地址(Bitnami 官方仓库使用registry-1.docker.io和bitnamicharts)
bashdocker run -d --name odoo \ -p 8069:8069 \ -e POSTGRESQL_HOST=postgresql \ -e POSTGRESQL_USER=odoo \ -e POSTGRESQL_PASSWORD=odoo_password \ -e POSTGRESQL_DATABASE=odoo \ -e ODOO_EMAIL=*** \ -e ODOO_PASSWORD=admin_password \ bitnami/odoo:latest
yamlversion: '3' services: postgresql: image: bitnami/postgresql:latest environment: - POSTGRESQL_USER=odoo - POSTGRESQL_PASSWORD=odoo_password - POSTGRESQL_DATABASE=odoo volumes: - postgresql_data:/bitnami/postgresql odoo: image: bitnami/odoo:latest ports: - "8069:8069" environment: - POSTGRESQL_HOST=postgresql - POSTGRESQL_USER=odoo - POSTGRESQL_PASSWORD=odoo_password - POSTGRESQL_DATABASE=odoo - ODOO_EMAIL=*** - ODOO_PASSWORD=admin_password depends_on: - postgresql volumes: - odoo_data:/bitnami/odoo volumes: postgresql_data: odoo_data:
启动服务:docker-compose up -d
生产环境必须设置资源请求和限制:
yamlresources: requests: cpu: 500m memory: 512Mi limits: cpu: 1000m memory: 1Gi
或使用预设配置:resourcesPreset: medium(支持 none/nano/micro/small/medium/large/xlarge/2xlarge)
禁用内置 PostgreSQL 并配置外部数据库:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/odoo \ --set postgresql.enabled=false \ --set externalDatabase.host=db.example.com \ --set externalDatabase.port=5432 \ --set externalDatabase.user=odoo_user \ --set externalDatabase.password=odoo_pass \ --set externalDatabase.database=odoo_db
可自定义 Pod 和容器安全上下文:
yamlpodSecurityContext: enabled: true fsGroup: 1001 supplementalGroups: [1001] containerSecurityContext: enabled: true runAsUser: 1001 runAsGroup: 1001 readOnlyRootFilesystem: true
通过 extraEnvVars 添加自定义环境变量:
yamlextraEnvVars: - name: ODOO_LOG_LEVEL value: "info" - name: ODOO_CACHE_SIZE value: "2048"
或通过现有 ConfigMap/Secret 注入:
yamlextraEnvVarsCM: "odoo-env-cm" extraEnvVarsSecret: "odoo-env-secret"
| 名称 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局镜像仓库地址 | "" |
global.imagePullSecrets | 镜像拉取密钥数组 | [] |
global.defaultStorageClass | 默认存储类 | "" |
global.security.allowInsecureImages | 允许不安全镜像 | false |
global.compatibility.openshift.adaptSecurityContext | OpenShift 安全上下文适配 | disabled |
| 名称 | 描述 | 默认值 |
|---|---|---|
nameOverride | 名称覆盖字符串 | "" |
fullnameOverride | 完整名称覆盖字符串 | "" |
commonLabels | 通用标签 | {} |
clusterDomain | 集群域名 | cluster.local |
image.registry | 镜像仓库 | REGISTRY_NAME |
image.repository | 镜像路径 | REPOSITORY_NAME/odoo |
image.tag | 镜像标签 | latest |
image.pullPolicy | 拉取策略 | IfNotPresent |
image.debug | 调试模式 | false |
| 名称 | 描述 | 默认值 |
|---|---|---|
odooEmail | 管理员*** | *** |
odooPassword | 管理员密码 | "" |
odooSkipInstall | 跳过安装向导 | false |
odooDatabaseFilter | 数据库过滤正则 | .* |
loadDemoData | 加载演示数据 | false |
smtpHost | SMTP 主机 | "" |
smtpPort | SMTP 端口 | "" |
smtpUser | SMTP 用户名 | "" |
smtpPassword | SMTP 密码 | "" |
smtpProtocol | SMTP 协议 | "" |
existingSecret | 现有凭证密钥 | "" |
| 名称 | 描述 | 默认值 |
|---|---|---|
replicaCount | 副本数 | 1 |
containerPorts.http | HTTP 端口 | 8069 |
resourcesPreset | 资源预设 | large |
resources | 资源配置 | {} |
podSecurityContext.enabled | 启用 Pod 安全上下文 | true |
podSecurityContext.fsGroup | 文件系统组 | 0 |
containerSecurityContext.enabled | 启用容器安全上下文 | true |
containerSecurityContext.runAsUser | 运行用户 ID | 0 |
完整参数列表参见 Bitnami Odoo Chart 文档
Odoo 数据存储路径:/bitnami/odoo
持久化配置参数:
| 名称 | 描述 | 默认值 |
|---|---|---|
persistence.enabled | 启用持久化 | true |
persistence.storageClass | 存储类 | "" |
persistence.accessModes | 访问模式 | ["ReadWriteOnce"] |
persistence.size | 存储大小 | 8Gi |
persistence.path | 挂载路径 | /bitnami/odoo |
使用 Velero 进行 Kubernetes 环境备份:
bashvelero backup create odoo-backup --include-resources pvc,pv --selector app.kubernetes.io/instance=my-release
bashvelero restore create --from-backup odoo-backup
详细步骤参见 Bitnami 备份恢复指南
consolehelm upgrade my-release oci://registry-1.docker.io/bitnamicharts/odoo
consolehelm upgrade my-release oci://registry-1.docker.io/bitnamicharts/odoo --set image.tag=16.0.0
bash# 创建新密钥 kubectl create secret generic odoo-secret \ --from-literal=odoo-password=new_password \ --from-literal=smtp-password=new_smtp_password \ --dry-run=client -o yaml | kubectl apply -f - # 重启部署 kubectl rollout restart deployment my-release-odoo



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