2026-06-15 18:46:09 +08:00
|
|
|
FROM postgres:16-bookworm
|
|
|
|
|
|
2026-06-15 18:48:19 +08:00
|
|
|
# 装 zhparser 编译依赖 + scws(中文分词库)
|
|
|
|
|
# zhparser 在 PGDG / Debian 仓库里都没现成包,需要从源码编译
|
|
|
|
|
# 参考: https://github.com/zhparser/zhparser
|
|
|
|
|
RUN set -eux; \
|
|
|
|
|
apt-get update; \
|
|
|
|
|
apt-get install -y --no-install-recommends \
|
|
|
|
|
build-essential \
|
|
|
|
|
git \
|
2026-06-15 18:46:09 +08:00
|
|
|
ca-certificates \
|
2026-06-15 18:48:19 +08:00
|
|
|
# scws 依赖
|
|
|
|
|
libscws-dev \
|
|
|
|
|
# pg_config / pgxs(编译 PG 扩展用,来自 postgresql-server-dev)
|
|
|
|
|
postgresql-server-dev-16; \
|
|
|
|
|
rm -rf /var/lib/apt/lists/*
|
2026-06-15 18:46:09 +08:00
|
|
|
|
2026-06-15 18:48:19 +08:00
|
|
|
# 装 scws 命令行工具(可选,扩展本身只需要 libscws.so)
|
|
|
|
|
# Debian 包 libscws-dev 已经包含了运行时 .so
|
2026-06-15 18:46:09 +08:00
|
|
|
|
2026-06-15 18:48:19 +08:00
|
|
|
# 编译装 zhparser
|
|
|
|
|
# 注意:zhparser 默认要装到 $pkglibdir(/usr/lib/postgresql/16/lib/),
|
|
|
|
|
# make install 用 PGXS 系统,会读取 pg_config
|
|
|
|
|
RUN set -eux; \
|
|
|
|
|
cd /tmp; \
|
|
|
|
|
git clone --depth 1 https://github.com/zhparser/zhparser.git; \
|
|
|
|
|
cd zhparser; \
|
|
|
|
|
make; \
|
|
|
|
|
make install; \
|
|
|
|
|
cd /; \
|
|
|
|
|
rm -rf /tmp/zhparser
|
|
|
|
|
|
|
|
|
|
# 验证:扩展文件应该已经就位
|
|
|
|
|
RUN ls -la /usr/lib/postgresql/16/lib/zhparser.so 2>&1 | head -2
|