You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Bitnami PostgreSQL镜像添加plpythonu扩展?改镜像仍报错

解决Bitnami PostgreSQL镜像添加plpythonu扩展失败的问题

问题场景

使用Bitnami PostgreSQL 12镜像在K8s集群部署数据库时,默认镜像不支持plpythonu扩展。自行编写Dockerfile安装扩展包后,执行创建扩展操作仍报错:

ERROR: 语言"plpythonu"不存在

自行编写的Dockerfile如下:

ARG PG_MAJOR=12
FROM bitnami/postgresql:$PG_MAJOR
ARG PG_MAJOR
ENV DEBIAN_FRONTEND noninteractive

USER root
RUN apt-get -y update && apt-get -y install wget lsb-release gnupg
RUN sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN apt-get -y update

RUN apt-get -y install postgresql-plpython3-$PG_MAJOR

USER 1001

问题原因

你安装的postgresql-plpython3-$PG_MAJOR对应Python3版本的扩展,其关联的语言名称是plpython3u;而你尝试调用的plpythonu是Python2版本扩展对应的语言名称,两者无法混用,因此触发语言不存在的报错。

解决方案

方案1:改用Python3版本扩展(推荐)

直接执行适配Python3的扩展创建语句:

CREATE EXTENSION plpython3u;

方案2:安装Python2版本扩展(若必须使用plpythonu)

修改Dockerfile中的安装包为Python2对应的扩展包,重新构建镜像:

ARG PG_MAJOR=12
FROM bitnami/postgresql:$PG_MAJOR
ARG PG_MAJOR
ENV DEBIAN_FRONTEND noninteractive

USER root
RUN apt-get -y update && apt-get -y install wget lsb-release gnupg
RUN sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
RUN apt-get -y update

# 替换为Python2对应的扩展包
RUN apt-get -y install postgresql-plpython-$PG_MAJOR

USER 1001

构建镜像后重新部署,即可执行:

CREATE EXTENSION plpythonu;

验证步骤

进入PostgreSQL容器,执行psql连接数据库后,可查询已加载的语言确认扩展安装状态:

SELECT lanname FROM pg_language;

若查询结果包含plpython3u或plpythonu,则说明扩展包已正确安装。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 17:17:20