2026-06-15 18:46:09 +08:00
|
|
|
FROM postgres:16-bookworm
|
|
|
|
|
|
2026-06-15 18:49:34 +08:00
|
|
|
# zhparser 中文分词扩展 — 全源码编译
|
2026-06-15 18:51:23 +08:00
|
|
|
# Debian / PGDG 仓库里都没有 postgresql-16-zhparser / libscws-dev / scws 包,
|
|
|
|
|
# 必须从 GitHub 拉源码自己 make。
|
2026-06-15 18:49:34 +08:00
|
|
|
#
|
|
|
|
|
# 步骤:
|
2026-06-15 18:51:23 +08:00
|
|
|
# 1) 装编译工具链 + PG dev headers
|
|
|
|
|
# 2) 编译 scws(autotools 项目,先 ./acprep 生成 configure)
|
|
|
|
|
# 3) 编译 zhparser(PGXS 扩展,直接 make)
|
2026-06-15 18:49:34 +08:00
|
|
|
#
|
|
|
|
|
# build 时间:~3-5 分钟
|
2026-06-15 18:51:23 +08:00
|
|
|
# 产物:/usr/lib/postgresql/16/lib/zhparser.so + /usr/lib/libscws.so
|
2026-06-15 18:49:34 +08:00
|
|
|
|
2026-06-15 18:48:19 +08:00
|
|
|
RUN set -eux; \
|
2026-06-15 18:51:23 +08:00
|
|
|
# 1) 编译工具 + PG dev headers
|
2026-06-15 18:48:19 +08:00
|
|
|
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:51:23 +08:00
|
|
|
# autotools(scws 依赖)
|
|
|
|
|
autoconf \
|
|
|
|
|
automake \
|
|
|
|
|
libtool \
|
|
|
|
|
# pg_config / pgxs(编译 PG 扩展用)
|
2026-06-15 18:48:19 +08:00
|
|
|
postgresql-server-dev-16; \
|
|
|
|
|
rm -rf /var/lib/apt/lists/*
|
2026-06-15 18:46:09 +08:00
|
|
|
|
2026-06-15 18:51:23 +08:00
|
|
|
# 2) 编译装 scws(autotools:先 ./acprep 生成 configure,再 ./configure && make)
|
2026-06-15 18:49:34 +08:00
|
|
|
RUN set -eux; \
|
|
|
|
|
cd /tmp; \
|
|
|
|
|
git clone --depth 1 https://github.com/hightman/scws.git; \
|
|
|
|
|
cd scws; \
|
2026-06-15 18:51:23 +08:00
|
|
|
./acprep; \
|
2026-06-15 18:49:34 +08:00
|
|
|
./configure --prefix=/usr; \
|
|
|
|
|
make -j$(nproc); \
|
|
|
|
|
make install; \
|
|
|
|
|
ldconfig; \
|
|
|
|
|
cd /; \
|
|
|
|
|
rm -rf /tmp/scws
|
2026-06-15 18:46:09 +08:00
|
|
|
|
2026-06-15 18:51:23 +08:00
|
|
|
# 3) 编译装 zhparser(PGXS 扩展,直接 make)
|
2026-06-15 18:48:19 +08:00
|
|
|
RUN set -eux; \
|
|
|
|
|
cd /tmp; \
|
|
|
|
|
git clone --depth 1 https://github.com/zhparser/zhparser.git; \
|
|
|
|
|
cd zhparser; \
|
2026-06-15 18:49:34 +08:00
|
|
|
make -j$(nproc); \
|
2026-06-15 18:48:19 +08:00
|
|
|
make install; \
|
|
|
|
|
cd /; \
|
|
|
|
|
rm -rf /tmp/zhparser
|
|
|
|
|
|
2026-06-15 18:49:34 +08:00
|
|
|
# 验证:扩展文件 + scws .so 都已就位
|
|
|
|
|
RUN ls -la /usr/lib/postgresql/16/lib/zhparser.so /usr/lib/libscws.so* 2>&1 | head -5
|