| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- # Build stage: compile Apache AGE against PostgreSQL 18 on top of pgvector
- FROM pgvector/pgvector:pg18-trixie AS build
- RUN apt-get update \
- && apt-get install -y --no-install-recommends --no-install-suggests \
- ca-certificates \
- git \
- bison \
- build-essential \
- flex \
- postgresql-server-dev-18
- RUN git clone --depth 1 --branch release/PG18/1.7.0 https://github.com/apache/age.git /usr/src/age \
- && cd /usr/src/age \
- && make \
- && make install
- # Final stage: Create a final image by copying the files created in the build stage
- FROM pgvector/pgvector:pg18-trixie
- RUN apt-get update \
- && apt-get install -y --no-install-recommends --no-install-suggests \
- locales
- RUN echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
- && locale-gen \
- && update-locale LANG=en_US.UTF-8
- ENV LANG=en_US.UTF-8
- ENV LC_COLLATE=en_US.UTF-8
- ENV LC_CTYPE=en_US.UTF-8
- COPY --from=build /usr/lib/postgresql/18/lib/age.so /usr/lib/postgresql/18/lib/
- COPY --from=build /usr/share/postgresql/18/extension/age--1.7.0.sql /usr/share/postgresql/18/extension/
- COPY --from=build /usr/share/postgresql/18/extension/age.control /usr/share/postgresql/18/extension/
- RUN printf '%s\n' \
- 'CREATE EXTENSION IF NOT EXISTS vector;' \
- 'CREATE EXTENSION IF NOT EXISTS age CASCADE;' \
- > /docker-entrypoint-initdb.d/00-create-extensions.sql
- # Note: AGE extension require to be loaded shared_preload_libraries
- CMD ["postgres", "-c", "shared_preload_libraries=age"]
|