我正在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
不过,这似乎仍然安装了与Postgres13不兼容的plv8的2.3.11
版本。
有什么方法可以指定pgxn
安装的版本吗?或者我可以用任何其他方式安装Postgres13版本的plv8?
您可以将我们完成的docker图像与postgres和plv8一起使用。它是免费的,基于Debian和Alpine的Postgres 13、14和15的图像可用,支持amd64和arm64架构。
docker pull sibedge/postgres-plv8
默认使用Alpine和最后一个Postgres版本。此处的所有可用标签
请注意,BigInt在v8中是不可序列化的,在plv8 v3.0.0及更高版本中,默认情况下BigInt数字会转换为字符串(!(。但如果您需要BigInt作为数字支持,请将此图像与Postgres和特定版本的plv8:一起使用
docker pull sibedge/postgres-plv8-bigint
或者,您可以将我们的二进制文件与这些Dockerfiles一起使用,并通过postgres和plv8自己快速构建紧凑的图像:
Postgres 14.2,plv8 v3.0.0,基于Alpine。图像大小为235MB。
Postgres 13.6,plv8 v3.0.0,基于Alpine。图像大小为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
你现在可以使用它。
看起来plv8
的最新版本尚未在pgxn
网络上发布。最后发布的版本是2.3.11
,这就是您在这里看到的。
要安装最新版本的plv8,您可以按照构建说明更新Dockerfile
以从源代码构建plv8
。一个好的起点是参考使用postgres:10
基础图像构建的docker图像clkao/postgres-plv8。