我想制作一个Dockerfile来构建Postgres:11映像,该映像已经安装了postgresql-hll extension。 我对Docker没有经验,所以我不知道要正确安装此扩展程序。
答案 0 :(得分:0)
为此,您需要:
git clone https://github.com/citusdata/postgresql-hll.git
Dockerfile
的文件(与在步骤1创建的postgresql-hll文件夹处于同一级别),内容如下: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.sql
,内容如下:CREATE EXTENSION hll;
# build for POSTGRES 11
docker build -t hll:1.0 --build-arg psversion=11 .
# build for POSTGRES 9.6
docker build -t hll:1.0 --build-arg psversion=9 .
注意:POSTGRES 9.6的版本在尝试加载库时出现错误。这里是为了完整性,也许有人可以为修复它做出贡献。
docker run -d --name hll hll:1.0
docker exec -ti hll bash
su postgres
psql
\dx
输出应显示已安装的hll扩展名。