Postgresql 如何用HLL扩展建立Postgres:11的形象?
我想制作一个Dockerfile来构建已经安装在里面的Postgres:11的映像。Postgresql 如何用HLL扩展建立Postgres:11的形象?,postgresql,docker,Postgresql,Docker,我想制作一个Dockerfile来构建已经安装在里面的Postgres:11的映像。 我对Docker没有经验,因此我不知道如何正确安装此扩展。要做到这一点,您需要: 克隆git存储库: git克隆https://github.com/citusdata/postgresql-hll.git 创建名为Dockerfile(与步骤1中创建的文件夹postgresql hll处于同一级别)的文件,其内容如下: 在Dockerfile的同一级别创建一个文件Create_extension.sql,内
我对Docker没有经验,因此我不知道如何正确安装此扩展。要做到这一点,您需要:
git克隆https://github.com/citusdata/postgresql-hll.git
Dockerfile
(与步骤1中创建的文件夹postgresql hll处于同一级别)的文件,其内容如下:Create_extension.sql
,内容如下:#为POSTGRES 11构建
docker build-t hll:1.0——build arg psversion=11。
#为博士后9.6构建
docker build-t hll:1.0——build arg psversion=9。
注意:POSTGRES 9.6版本在尝试加载库时出错。它在这里是为了完整性,也许有人可以帮助修复它
docker run-d——名称hll-hll:1.0
docker exec-ti hll bash
su postgres
psql
\dx
输出应显示已安装的hll扩展。为此,您需要:
git克隆https://github.com/citusdata/postgresql-hll.git
Dockerfile
(与步骤1中创建的文件夹postgresql hll处于同一级别)的文件,其内容如下:Create_extension.sql
,内容如下:#为POSTGRES 11构建
docker build-t hll:1.0——build arg psversion=11。
#为博士后9.6构建
docker build-t hll:1.0——build arg psversion=9。
注意:POSTGRES 9.6版本在尝试加载库时出错。它在这里是为了完整性,也许有人可以帮助修复它
docker run-d——名称hll-hll:1.0
docker exec-ti hll bash
su postgres
psql
\dx
输出应显示已安装的hll扩展名。非常感谢,这适用于postgres:11,但对于postgres:9.6,它会抛出
。致命:无法访问文件“hll”:没有这样的文件或目录
,我不知道这两个版本之间有什么不同。@MiHaiI仅使用版本11进行了测试。我也会尝试第9版,让你know@BảoGia I将Dockerfile设置为参数化,以便更容易为不同版本的postgres运行它。但是,它不适用于版本9。它看起来像是兼容性错误,但我不能说,因为我不知道PASGRESs或C++。无论如何,我比你提到的错误更进一步。非常感谢,这对postgres:11有效,但对于postgres:9.6它抛出。致命:无法访问文件“hll”:没有这样的文件或目录
,我不知道这两个版本之间有什么不同。@MiHaiI只使用版本11进行了测试。我也会尝试第9版,让你know@BảoGia I将Dockerfile设置为参数化,以便更容易为不同版本的postgres运行它。但是,它不适用于版本9。它看起来像是兼容性错误,但我不能说,因为我不知道PASGRESs或C++。无论如何,我比你提到的错误更进一步。
ARG psversion=11
FROM postgres:$psversion
COPY postgresql-hll /postgresql-hll
RUN apt-get update -y && apt-get install -y postgresql-server-dev-${PG_MAJOR} make gcc g++
WORKDIR /postgresql-hll
RUN PG_CONFIG=/usr/bin/pg_config make
RUN PG_CONFIG=/usr/bin/pg_config make install
RUN echo "shared_preload_libraries = 'hll'" >> /usr/share/postgresql/postgresql.conf.sample
COPY create_extension.sql /docker-entrypoint-initdb.d/
CREATE EXTENSION hll;