postgres/Dockerfile

34 lines
1.3 KiB
Docker
Raw Normal View History

2024-04-14 16:17:09 +02:00
FROM postgres:16-alpine AS env-build
2024-03-12 08:15:30 +01:00
2024-04-14 16:17:09 +02:00
RUN apk add --no-cache build-base postgresql-dev git
WORKDIR /srv
# Copy contents of https://github.com/fboulnois/pg_uuidv7.git into srv
RUN git clone https://github.com/fboulnois/pg_uuidv7.git .
COPY pg_buildext .
# build extension for all supported versions
RUN /bin/sh pg_buildext build-16 16
# create tarball and checksums
RUN cp sql/pg_uuidv7--1.5.sql . && TARGETS=$(find * -name pg_uuidv7.so) \
&& tar -czvf pg_uuidv7.tar.gz $TARGETS pg_uuidv7--1.5.sql pg_uuidv7.control \
&& sha256sum pg_uuidv7.tar.gz $TARGETS pg_uuidv7--1.5.sql pg_uuidv7.control > SHA256SUMS
FROM postgres:16-alpine AS env-deploy
# copy tarball and checksums
COPY --from=0 /srv/pg_uuidv7.tar.gz /srv/SHA256SUMS /srv/
# add extension to postgres
COPY --from=0 /srv/${PG_MAJOR}/pg_uuidv7.so /usr/local/lib/postgresql/pg_uuidv7
COPY --from=0 /srv/pg_uuidv7.control /usr/local/share/postgresql/extension
COPY --from=0 /srv/pg_uuidv7--1.5.sql /usr/local/share/postgresql/extension
2024-03-12 08:15:30 +01:00
# Add a script to run the CREATE EXTENSION command
RUN printf '#!/bin/sh\npsql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION pg_uuidv7;"' > /docker-entrypoint-initdb.d/init.sh
2024-03-12 08:15:30 +01:00
# Make the entrypoint script executable
RUN chmod +x /docker-entrypoint-initdb.d/init.sh
2024-03-12 09:05:56 +01:00
CMD ["postgres"]