# Note: Debian Trixie = Debian 13 FROM postgres:17-trixie # Install pg_search from GitHub Releases RUN set -eux; \ apt-get update; \ apt-get install -y --no-install-recommends ca-certificates curl; \ arch="$(dpkg --print-architecture)"; \ case "$arch" in \ amd64) checksum="d47e999cd53e80f6e9bb8c4781d7045def89af245a1c15dc631141b30a04c78a" ;; \ arm64) checksum="b2ef596c14c9ebab640d48cb254f71f5ea1a3b4acfede4154b3499d0f87826a4" ;; \ *) echo "unsupported architecture: $arch" >&2; exit 1 ;; \ esac; \ curl -fsSL -o /tmp/pg_search.deb "https://github.com/paradedb/paradedb/releases/download/v0.25.11/postgresql-17-pg-search_0.25.11-1PARADEDB-trixie_${arch}.deb"; \ echo "${checksum} */tmp/pg_search.deb" | sha256sum --strict --check -; \ apt-get install -y --no-install-recommends /tmp/pg_search.deb; \ apt-get purge -y --auto-remove curl; \ rm /tmp/pg_search.deb; \ apt-get dist-clean # Install pgvector RUN set -eux; \ echo "deb [ signed-by=/usr/local/share/keyrings/postgres.gpg.asc ] https://apt-archive.postgresql.org/pub/repos/apt trixie-pgdg-archive main" > /etc/apt/sources.list.d/pgdg-archive.list; \ apt-get update; \ apt-get install -y --no-install-recommends postgresql-17-pgvector=0.8.6-1.pgdg13+1; \ apt-get dist-clean RUN set -eux; \ echo "shared_preload_libraries = 'pg_search'" >> /usr/share/postgresql/postgresql.conf.sample COPY ./bootstrap_official.sh /docker-entrypoint-initdb.d/10_bootstrap_paradedb.sh # The upstream `postgres` Docker image comes with its own `entrypoint.sh` script which # starts as `root` and then switches to the `postgres` user after running chown and chmod # on the PostgreSQL data directory. To maintain compatibility with the upstream image and # ensure that the `postgres` user has the correct permissions on the data directory, we let # the upstream `entrypoint.sh` script run as the entrypoint and don't specify a custom user.