pgsql适用AI的docker镜像
# docker build -f pgsql.df -t pgsql:v17.7 .
FROM postgres:17.7-bookworm AS build-age
ENV TZ=Asia/Shanghai
ENV PGTZ=Asia/Shanghai
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources
RUN apt-get update \
&& apt-get install -y --no-install-recommends --no-install-suggests \
bison \
build-essential \
flex \
postgresql-server-dev-17
RUN apt install git -y && git clone -b PG17/v1.6.0-rc0 https://gitee.com/minrag/age.git && cd age && git checkout PG17/v1.6.0-rc0 && make && make install
# RUN make && make install
# Final stage: 基于 paradedb/paradedb 作为基础镜像,复制age产生的文件
FROM paradedb/paradedb:v0.20.6-pg17
ENV TZ=Asia/Shanghai
ENV PGTZ=Asia/Shanghai
RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debian.sources
RUN apt-get update \
&& apt-get install -y --no-install-recommends --no-install-suggests \
locales
RUN echo "zh_CN.UTF-8 UTF-8" > /etc/locale.gen \
&& locale-gen \
&& update-locale LANG=zh_CN.UTF-8
ENV LANG=zh_CN.UTF-8
ENV LC_COLLATE=zh_CN.UTF-8
ENV LC_CTYPE=zh_CN.UTF-8
COPY --from=build-age /usr/lib/postgresql/17/lib/age.so /usr/lib/postgresql/17/lib/
COPY --from=build-age /usr/share/postgresql/17/extension/age--1.6.0.sql /usr/share/postgresql/17/extension/
COPY --from=build-age /usr/share/postgresql/17/extension/age.control /usr/share/postgresql/17/extension/
# 修改 paradedb 自带的 bootstrap.sh,添加age扩展和 search_path ag_catalog
COPY ./bootstrap_paradedb.sh /docker-entrypoint-initdb.d/10_bootstrap_paradedb.sh
RUN chmod 755 /docker-entrypoint-initdb.d/10_bootstrap_paradedb.sh
## shared_preload_libraries 增加 age
RUN sed -i "s/'pg_search,pg_cron'/'age,pg_search,pg_cron'/" /usr/share/postgresql/postgresql.conf.sample
## 修改最大连接数为5000
RUN sed -i "s/#max_connections = 100/max_connections = 5000/" /usr/share/postgresql/postgresql.conf.sample
文章作者
上次更新 2026-01-07