You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

基于Bitnami PostgreSQL HA安装TimescaleDB遇APT目录缺失问题求助

问题分析
  1. Bitnami的postgresql-repmgr镜像为精简体积,清理了APT缓存相关目录,导致/var/lib/apt/lists/partial不存在,触发apt-get update报错。
  2. 镜像默认以非root用户(UID 1001,postgres)运行,直接执行apt-get会因权限不足无法创建/修改root所属目录。
  3. 当前配置的command仅执行TimescaleDB安装,未调用原镜像的PostgreSQL启动脚本,安装完成后Pod会直接退出,无法启动数据库服务。
修复方案

修改default-values-repmgr.yaml中的command字段,补充目录创建、权限切换及启动脚本调用逻辑:

postgresql:
  image:
    registry: docker.io
    repository: bitnami/postgresql-repmgr
    tag: 16.4.0-debian-12-r27
    digest: ""
    pullPolicy: IfNotPresent
  command:
    - /bin/bash
    - -c
    - |
      set -e
      # 切换root用户执行安装操作
      su - root << 'EOF'
        echo "Installing required utilities..."
        mkdir -p /var/lib/apt/lists/partial
        chmod 755 /var/lib/apt/lists/partial
        apt-get update
        apt-get install -y curl gnupg lsb-release ca-certificates
        echo "Adding TimescaleDB repository..."
        curl -sSL https://packagecloud.io/timescale/timescaledb/gpgkey | apt-key add -
        DISTRO=$(lsb_release -c | awk '{print $2}')
        echo "deb https://packagecloud.io/timescale/timescaledb/debian/ $DISTRO main" > /etc/apt/sources.list.d/timescaledb.list
        apt-get update
        echo "Installing TimescaleDB package..."
        apt-get install -y timescaledb-2-postgresql-16 timescaledb-2-loader-postgresql-16 timescaledb-tools timescaledb-toolkit-postgresql-16
        echo "TimescaleDB installation completed."
        # 清理APT缓存减少容器体积
        apt-get clean && rm -rf /var/lib/apt/lists/*
      EOF
      # 执行原镜像启动脚本,确保PostgreSQL与repmgr正常运行
      exec /opt/bitnami/scripts/postgresql-repmgr/run.sh
关键说明
  • su - root:Bitnami镜像默认允许postgres用户无密码切换至root,解决APT操作的权限问题。
  • 创建/var/lib/apt/lists/partial:手动补全APT依赖的目录,修复apt-get update的报错。
  • 执行原启动脚本:必须调用/opt/bitnami/scripts/postgresql-repmgr/run.sh,否则Pod安装完成后会直接退出,无法启动数据库服务。

内容的提问来源于stack exchange,提问作者user748447

火山引擎 最新活动