From 047d8d7ce8f99ce00a4d39409f85696f85269f42 Mon Sep 17 00:00:00 2001 From: Adib Saikali Date: Wed, 4 Jun 2025 23:33:23 -0400 Subject: [PATCH 1/2] add varition that can be used for a postgres with some ai related extensions --- custom/Dockerfile | 22 ++++++++++++++++++++++ docker-compose.override.yml | 6 ++++++ docker-compose.yml | 4 +--- 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 custom/Dockerfile create mode 100644 docker-compose.override.yml diff --git a/custom/Dockerfile b/custom/Dockerfile new file mode 100644 index 0000000..9b54d7f --- /dev/null +++ b/custom/Dockerfile @@ -0,0 +1,22 @@ +FROM pgvector/pgvector:pg17 + +# Add PostgreSQL APT repo and install system/extension dependencies +RUN apt-get update && apt-get install -y \ + wget \ + gnupg \ + lsb-release \ + ca-certificates \ + git \ + build-essential \ + postgresql-server-dev-17 \ + postgresql-17-http && \ + echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ + wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ + apt-get update && \ + rm -rf /var/lib/apt/lists/* + +# Clone and install pgsql-openai using its Makefile (PGXS) +RUN git clone https://github.com/pramsey/pgsql-openai.git /tmp/pgsql-openai && \ + cd /tmp/pgsql-openai && \ + make && make install && \ + rm -rf /tmp/pgsql-openai diff --git a/docker-compose.override.yml b/docker-compose.override.yml new file mode 100644 index 0000000..240b19f --- /dev/null +++ b/docker-compose.override.yml @@ -0,0 +1,6 @@ +services: + postgres: + build: + context: ./custom + dockerfile: Dockerfile + image: custom-postgres:17 diff --git a/docker-compose.yml b/docker-compose.yml index ef51d8a..940151d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,7 +4,6 @@ volumes: services: postgres: - container_name: demo_postgres labels: # see https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#features.docker-compose.custom-images for details org.springframework.boot.service-connection: postgres @@ -21,10 +20,9 @@ services: restart: unless-stopped pgadmin: - container_name: demo_pgadmin labels: org.springframework.boot.ignore: true - image: "dpage/pgadmin4:9.3" + image: "dpage/pgadmin4:9.4" environment: PGADMIN_DEFAULT_EMAIL: "admin@example.com" PGADMIN_DEFAULT_PASSWORD: "admin" From 475ad60d9a7287a0c29fa796dd962ca28e2c7a27 Mon Sep 17 00:00:00 2001 From: Adib Saikali Date: Thu, 5 Jun 2025 23:05:01 -0400 Subject: [PATCH 2/2] polish --- custom/Dockerfile | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/custom/Dockerfile b/custom/Dockerfile index 9b54d7f..4031ae7 100644 --- a/custom/Dockerfile +++ b/custom/Dockerfile @@ -1,6 +1,7 @@ +# Use pgvector base image for PostgreSQL 17 FROM pgvector/pgvector:pg17 -# Add PostgreSQL APT repo and install system/extension dependencies +# Add PostgreSQL APT repo and install build dependencies RUN apt-get update && apt-get install -y \ wget \ gnupg \ @@ -8,15 +9,23 @@ RUN apt-get update && apt-get install -y \ ca-certificates \ git \ build-essential \ + libcurl4-openssl-dev \ postgresql-server-dev-17 \ - postgresql-17-http && \ - echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ - wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - && \ - apt-get update && \ - rm -rf /var/lib/apt/lists/* + && echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list \ + && wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \ + && apt-get update \ + && rm -rf /var/lib/apt/lists/* -# Clone and install pgsql-openai using its Makefile (PGXS) -RUN git clone https://github.com/pramsey/pgsql-openai.git /tmp/pgsql-openai && \ - cd /tmp/pgsql-openai && \ - make && make install && \ - rm -rf /tmp/pgsql-openai +# Clone and build pgsql-http from source +RUN git clone https://github.com/pramsey/pgsql-http.git /tmp/pgsql-http \ + && cd /tmp/pgsql-http \ + && make \ + && make install \ + && rm -rf /tmp/pgsql-http + +# Clone and build pgsql-openai from source +RUN git clone https://github.com/pramsey/pgsql-openai.git /tmp/pgsql-openai \ + && cd /tmp/pgsql-openai \ + && make \ + && make install \ + && rm -rf /tmp/pgsql-openai