Files
tycho-protocol-sdk/protocol-testing/postgres.Dockerfile
2025-09-03 08:55:29 -04:00

27 lines
942 B
Docker

# This Dockerfile creates a custom postgres image used for CI and local deployment.
# Includes the extensions: pg_partman, pg_cron.
# Stage 1: Build pg_cron extension
FROM ghcr.io/dbsystel/postgresql-partman:15-5 AS builder
ARG PGCRON_VERSION="1.6.2"
USER root
RUN apk update && apk add --no-cache build-base clang19 llvm19 wget
RUN cd /tmp \
&& wget "https://github.com/citusdata/pg_cron/archive/refs/tags/v${PGCRON_VERSION}.tar.gz" \
&& tar zxf v${PGCRON_VERSION}.tar.gz \
&& cd pg_cron-${PGCRON_VERSION} \
&& make \
&& make install \
&& cd .. && rm -r pg_cron-${PGCRON_VERSION} v${PGCRON_VERSION}.tar.gz
# Stage 2: Final image, copy built extension
FROM ghcr.io/dbsystel/postgresql-partman:15-5
USER root
COPY --from=builder /usr/local/lib/postgresql/pg_cron.so /usr/local/lib/postgresql/
COPY --from=builder /usr/local/share/postgresql/extension/pg_cron* /usr/local/share/postgresql/extension/
USER postgres