dockerfile
# 使用现有的 bitnami/postgresql:16.3.0 镜像作为基础
FROM bitnami/postgresql:16.3.0
USER root
# 安装构建工具和依赖项
RUN install_packages git make gcc postgresql-server-dev-all
# 克隆 pg_roaringbitmap 源码
RUN git clone https://github.com/ChenHuajun/pg_roaringbitmap.git /pg_roaringbitmap
# 编译并安装插件
RUN cd /pg_roaringbitmap && \
make && \
make install
# 清理构建环境
RUN rm -rf /pg_roaringbitmap && \
apt-get remove --purge -y git make gcc postgresql-server-dev-all && \
apt-get autoremove -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# 切换回非root用户
USER 1001
# 继续使用现有的 ENTRYPOINT 和 CMD
ENTRYPOINT [ "/opt/bitnami/scripts/postgresql/entrypoint.sh" ]
CMD [ "/opt/bitnami/scripts/postgresql/run.sh" ]
退出容器后,连接到 PostgreSQL 数据库,并使用 CREATE EXTENSION 命令加载插件:
sql
psql -U postgres -d your_database -c "CREATE EXTENSION roaringbitmap;"
psql -U postgres -d your_database -c "\dx"
你应该能看到 roaringbitmap 在已安装的扩展列表中。