Postgres:安装特定版本的plv8

Postgres: Install a specific version of plv8

我正在 docker 安装 plv8:

FROM postgres:13 AS build

ENV PLV8_VERSION=v3.0.0

RUN apt-get update && apt-get upgrade \
    && apt-get install -y git curl glib2.0 libc++-dev python python3-pip 
       libv8-dev postgresql-server-dev-$PG_MAJOR libncurses5

RUN pip install pgxnclient
RUN pgxn install plv8

这似乎仍然安装了 2.3.11 版本的 plv8,它与 Postgres 13 不兼容。

有什么方法可以指定 pgxn 安装的版本吗?或者我可以通过任何其他方式安装 Postgres 13 版本的 plv8?

plv8 的最新版本似乎尚未在 pgxn 网络上发布。 last published version2.3.11,这就是您在这里看到的。

要安装最新版本的 plv8,您可以更新 Dockerfile 以按照使用 postgres:10 基础映像构建的 build instructions. A good starting point would be to refer to the docker image clkao/postgres-plv8 从源构建 plv8

您可以将我们完成的 docker-images 与 postgres 和 plv8 一起使用。它是免费的,提供基于 Debian 和 Alpine 的 Postgres 13 和 14 图像。

docker pull sibedge/postgres-plv8

默认使用 Alpine 和最新的 Postgres 版本。所有可用标签 here

注意,BigInt 在 v8 和 by default in plv8 v3.0.0 and higher BigInt numbers are converted into string(!) 中不可序列化。但是,如果您需要 BigInt 作为数字支持,请将此图像与 Postgres 和特定版本的 plv8 一起使用:

docker pull sibedge/postgres-plv8-bigint

或者您可以将我们的二进制文件与这些 Dockerfile 一起使用,并自己使用 postgres 和 plv8 快速构建紧凑的图像:

Postgres 14.2, plv8 v3.0.0,基于高山。图片大小为235MB。

Postgres 13.6, plv8 v3.0.0,基于高山。图片大小为231MB。

Postgres 13.4, plv8 v2.13.15,基于 Debian。图片大小为 351MB。

Postgres 13.6, plv8 v3.0.0,基于 Debian。图片大小为427MB。

$ git clone https://github.com/sibedge-llc/plv8-build.git
$ cd plv8-build/docker
$ docker build -t pg14-plv8-3
$ docker run -it -d --name pg14-plv8-3 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432/tcp pg14-plv8-3

您现在可以使用它了。