Show HN: Pglayers – PostgreSQL extensions as stackable Docker layers
github.com
github.com
CloudNativePG uses this for its Image Volume Extensions feature [1]. A lot of the CNPG team worked on contributing this to PG core because previously the only alternative was baking “God images” at build time (“-full” in this readme) with all extensions in them.
Now with the extension_control_path GUC, it’s possible to “attach” extensions as container volumes at runtime, without rebuilding the image of the container. Maybe you can adopt a similar approach in pglayers.
[0] https://postgresqlco.nf/doc/en/param/extension_control_path/
[1] https://cloudnative-pg.io/docs/1.30/imagevolume_extensions/
> FROM postgres:17 > > COPY --from=ghcr.io/pglayers/pgx-pgvector:17 / / > COPY --from=ghcr.io/pglayers/pgx-pg_cron:17 / / > COPY --from=ghcr.io/pglayers/pgx-postgis:17 / /
I like the way you've solved this!
One surprising benefit that I hadn't considered when implementing this is that when I add new extensions or update existing ones, users only need to update the affected layers. As a result, update times are minimal.
As you are pitching this at the less technical? and many of them won't use command line but will be using the GUI.
And also, maybe spend a few dollars on a pglayers domain name rather than using a GitHub one.