Bitnami Odoo Helm Chart使用Init Container拉取Addons失败求助
解决方案
根因说明
- 第一次报错是持久卷挂载的
/bitnami/odoo目录已存在Odoo运行生成的系统文件,git默认无法直接向非空目录克隆仓库 - 第二次报错是因为
volumeMount配置了subPath: addons,相当于把持久卷的addons子目录直接覆盖了容器的/bitnami/odoo根路径,导致路径下原有的conf、data等必要系统目录丢失,主容器启动找不到配置文件
可行配置方案
方案1:基于原Odoo镜像调整(兼容现有配置)
调整init容器配置,直接克隆到addons下的独立子目录,同时增加权限修复逻辑,避免主容器无法读取插件文件:
initContainers: - name: git-hr-attendance image: bitnami/odoo command: ["/bin/sh","-c"] args: - | apt-get -y update && apt-get -y install git TARGET_DIR="/bitnami/odoo/addons/hr-attendance" if [ -d "$TARGET_DIR/.git" ]; then cd $TARGET_DIR && git pull else git clone https://github.com/OCA/hr-attendance $TARGET_DIR fi chown -R 1001:1001 $TARGET_DIR securityContext: runAsUser: 0 volumeMounts: - name: odoo-data mountPath: /bitnami/odoo
注:加securityContext.runAsUser: 0是为了获取root权限执行apt安装和权限修改操作,Bitnami Odoo默认运行用户为1001,所以最后要把插件目录权限改回1001避免读取报错
方案2:使用轻量Git镜像(更优)
不需要每次init容器都执行apt安装操作,直接用官方Git镜像作为init容器运行环境,启动速度更快:
initContainers: - name: git-hr-attendance image: bitnami/git:latest command: ["/bin/sh","-c"] args: - | TARGET_DIR="/bitnami/odoo/addons/hr-attendance" if [ -d "$TARGET_DIR/.git" ]; then cd $TARGET_DIR && git pull else git clone https://github.com/OCA/hr-attendance $TARGET_DIR fi chown -R 1001:1001 $TARGET_DIR volumeMounts: - name: odoo-data mountPath: /bitnami/odoo
配置后启动Odoo主容器,在Odoo后台应用列表中点击更新应用列表,即可搜索到hr-attendance相关插件启用。
内容的提问来源于stack exchange,提问作者Gallifrey
相关产品推荐
相关产品推荐

