# syntax=docker/dockerfile:1.4 # pg-knoe-auth builder image # # Produces a scratch artifact image containing only pg_knoe_auth.so and its # SHA256 checksum. The knoe-db Dockerfile consumes it via COPY --from=. # # Build: # docker build -t pg-knoe-auth:local . # # See docs/plans/junie/pg_knoe_auth-rename-harden-modularize.md ยง2.3 FROM ubuntu:24.04 AS builder ARG PG_MAJOR=18 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates curl wget gnupg2 lsb-release \ build-essential pkg-config \ libcurl4-openssl-dev libssl-dev libkrb5-dev \ && rm -rf /var/lib/apt/lists/* # Install Percona PG18 server-dev for pg_config + headers RUN wget -q "https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb" \ && dpkg -i "percona-release_latest.$(lsb_release -sc)_all.deb" \ && rm "percona-release_latest.$(lsb_release -sc)_all.deb" \ && percona-release setup ppg-${PG_MAJOR} \ && apt-get update \ && apt-get install -y --no-install-recommends \ percona-postgresql-${PG_MAJOR} \ percona-postgresql-server-dev-${PG_MAJOR} \ && rm -rf /var/lib/apt/lists/* COPY src/ /build/src/ WORKDIR /build/src RUN make USE_PGXS=1 PG_CONFIG=/usr/lib/postgresql/${PG_MAJOR}/bin/pg_config # Copy artifact + checksum to /output RUN mkdir -p /output && \ cp pg_knoe_auth.so /output/ && \ sha256sum /output/pg_knoe_auth.so > /output/pg_knoe_auth.so.sha256 # Final stage: just the artifact (importable via COPY --from=) FROM scratch AS artifact COPY --from=builder /output/ /output/