# 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