配置 Bitnami pg-16 的postgis 和 pg_jieba 插件
Bitnami 的镜像有严格安全规则,直接在镜像里面编译/部署不行。 先下载 Debian-12 镜像,然后在里面编译
Dockerfile:
FROM debian:bookworm
RUN apt update && \
apt install -y postgresql-common && \
/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y && \
apt install -y wget curl git cmake g++ postgresql-16 postgresql-client-16 libpq-dev postgresql-server-dev-16 && \
git clone https://github.com/jaiminpan/pg_jieba && \
cd pg_jieba && \
git submodule update --init --recursive && \
mkdir build && \
cd build && \
cmake -DCMAKE_CXX_FLAGS="-Wall -std=c++11" -DCMAKE_PREFIX_PATH=/usr/include/postgresql/16/server/ .. && \
make && \
make install && \
记住编译后安装的文件
Install the project...
-- Install configuration: ""
-- Installing: /usr/lib/postgresql/16/lib/pg_jieba.so
-- Installing: /usr/share/postgresql/16/extension/pg_jieba.control
-- Installing: /usr/share/postgresql/16/extension/pg_jieba--1.1.1.sql
-- Installing: /usr/share/postgresql/16/tsearch_data/jieba_base.dict
-- Installing: /usr/share/postgresql/16/tsearch_data/jieba_hmm.model
-- Installing: /usr/share/postgresql/16/tsearch_data/jieba_user.dict
-- Installing: /usr/share/postgresql/16/tsearch_data/jieba.stop
-- Installing: /usr/share/postgresql/16/tsearch_data/jieba.idf
下载 Bitnami-pg16 ,并启动
docker-compose.yml
services:
postgresql:
image: docker.io/bitnami/postgresql:16.4.0-debian-12-r14
ports:
- '5432:5432'
volumes:
- 'postgresql_data:/bitnami/postgresql'
environment:
- 'ALLOW_EMPTY_PASSWORD=yes'
volumes:
postgresql_data:
driver: local
启动后找到 docker 本地运行目录
docker inspect pg-16-postgresql-1 | jq '.[].GraphDriver'
{
"Data": {
"LowerDir": "/var/lib/docker/overlay2/0fcb6623bc59638f4b1966dd77a5dbb2b721cb6a809615ece11f6afe8eb40704-init/diff:/var/lib/docker/overlay2/8059768e26e71dda85cf9dc010f8eedd23a079ff31237f963178d753c7cce9d0/diff",
"MergedDir": "/var/lib/docker/overlay2/0fcb6623bc59638f4b1966dd77a5dbb2b721cb6a809615ece11f6afe8eb40704/merged",
"UpperDir": "/var/lib/docker/overlay2/0fcb6623bc59638f4b1966dd77a5dbb2b721cb6a809615ece11f6afe8eb40704/diff",
"WorkDir": "/var/lib/docker/overlay2/0fcb6623bc59638f4b1966dd77a5dbb2b721cb6a809615ece11f6afe8eb40704/work"
},
"Name": "overlay2"
}
进入目录
cd /var/lib/docker/overlay2/0fcb6623bc59638f4b1966dd77a5dbb2b721cb6a809615ece11f6afe8eb40704/merged/opt/bitnami/postgresql/
把上面编译的文件 copy 到对应的 bitnami 目录下
然后把运行的 docker 导出成 image ,并上传到自己的 hub 仓库
docker commit pg-16-postgresql-1 bitnami-pg:16.4.0
docker tag bitnami-pg:16.4.0 swr.cn-east-3.myhuaweicloud.com/bitnami-pg:16.4.0
docker push swr.cn-east-3.myhuaweicloud.com/bitnami-pg:16.4.0
这样有 pg_jiba 的 bitnami pg-16 镜像制作完成,部署到 K8 的时候,指定如下参数
image:
registry: swr.cn-east-3.myhuaweicloud.com
repository: bitnami-pg
tag: 16.4.0
Helm 对应的版本是:15.5.38
helm search repo bitnami/postgresql --version=15.5.38
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/postgresql 15.5.38 16.4.0 PostgreSQL (Postgres) is an open source object-...
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付
