Show HN: Pglayers – PostgreSQL extensions as stackable Docker layers(github.com)
github.com
Show HN: Pglayers – PostgreSQL extensions as stackable Docker layers
https://github.com/pglayers/pglayers
11 评论
@chatmasta Thanks again for the pointer. I just added the implementation now for the images based on PG 18+ I really like the idea of adding your layers at deploy time so this is a nice improvement.
Oh that's excellent. Thanks for sharing. I was not aware at all I cam going to take a look at it.
Good job and very essential design!
> 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!
> 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!
Yes, I thought this approach should work, but why nobody has done it. The only real issue is file collisions, which I test for aggressively. So far, I've only found a few minor cases that I either worked around or reported to the relevant projects (e.g. some projects package the extension with a generic README.md file) instead of an extension-specific one.
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.
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.
Feedback - On your website consider adding a QuickStart for Docker Desktop too.
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.
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.
Good ideas, thanks. My target audience is both less technical and technical users who don't care about the low level details of databases but just want to run their code that uses the db extensions without the need to learn about the internals of the database to be able to use them.
This is fantastic, i was thinking of something just like this
I need exactly something like this!
Gonna look into it. Thanks!
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/