Postgres:安装特定版本的 plv8
Posted
技术标签:
【中文标题】Postgres:安装特定版本的 plv8【英文标题】:Postgres: Install a specific version of plv8 【发布时间】:2022-01-23 13:31:29 【问题描述】:我正在 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
这似乎仍然安装了 plv8 的2.3.11
版本,它与 Postgres 13 不兼容。
有什么方法可以指定pgxn
安装的版本吗?或者我可以安装 Postgres 13 版本的 plv8 的任何其他方式?
【问题讨论】:
【参考方案1】:我们有一些适用于 Postgres 13 和 14 的二进制文件。您可以使用这些 Dockerfile 并通过 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
您现在可以使用它。此外,我们将尽快将完成的带有 postgres 和 plv8 的 docker-images 发布到 Dockerhub。
【讨论】:
【参考方案2】:看起来plv8
的最新版本尚未在pgxn
网络上发布。 last published version 是 2.3.11
,这就是您在此处看到的内容。
要安装最新版本的 plv8,您可以按照 build instructions 更新您的 Dockerfile
以从源代码构建 plv8
。一个好的起点是参考使用 postgres:10
基础镜像构建的 docker 镜像 clkao/postgres-plv8。
【讨论】:
以上是关于Postgres:安装特定版本的 plv8的主要内容,如果未能解决你的问题,请参考以下文章
在 Postgres 9.4 中查找 JSON 数组中的最后一项
使用 Postgres 安装最新版本的 Rails 4 - 不推荐使用 PGconn、PGresult 和 PGError 常量