Skip to content

Commit d3ef148

Browse files
committed
chore: improve Dockerfile to build as extension image
Some improvements were made to the Dockerfile to build using meson and use a scratch image to have an extension image compatible with CloudNativePG Closes #10 Signed-off-by: Jonathan Gonzalez V. <jonathan.abdiel@gmail.com>
1 parent 8652644 commit d3ef148

File tree

1 file changed

+12
-20
lines changed

1 file changed

+12
-20
lines changed

docker/Dockerfile

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,21 @@
1-
# syntax=docker/dockerfile:1.7
2-
FROM postgres:18 AS builder
1+
ARG BASE=ghcr.io/cloudnative-pg/postgresql:18-standard-trixie
2+
3+
FROM $BASE AS builder
34
ARG DEBIAN_FRONTEND=noninteractive
5+
USER root
46
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
57
set -eux; \
68
apt-get update; \
79
apt-get install -y --no-install-recommends \
810
build-essential \
911
meson \
1012
libcurl4-openssl-dev \
11-
postgresql-server-dev-18; \
12-
WORKDIR /work
13-
COPY . .
14-
RUN meson setup build && meson build -C build/
13+
postgresql-server-dev-18
14+
WORKDIR /srv
15+
COPY meson.build LICENSE ./
16+
COPY src/ ./src/
17+
RUN meson setup build && meson compile -C build/
1518

16-
FROM ghcr.io/cloudnative-pg/postgresql:18-standard-trixie
17-
ARG DEBIAN_FRONTEND=noninteractive
18-
USER root
19-
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
20-
set -eux; \
21-
apt-get update; \
22-
apt-get install -y --no-install-recommends libcurl4 ca-certificates; \
23-
apt-get clean; \
24-
rm -rf /var/lib/apt/lists/*
25-
COPY --chmod=0644 docker/certs/server.crt /usr/local/share/ca-certificates/kc-root.crt
26-
RUN update-ca-certificates
27-
ENV CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
28-
USER postgres
29-
COPY --from=builder /work/build/kc_validator.so /usr/lib/postgresql/18/lib/
19+
FROM scratch
20+
21+
COPY --from=builder /srv/build/kc_validator.so /share/extension/

0 commit comments

Comments
 (0)