docker
docker copied to clipboard
Include Citus compatible extensions in published container
Today there was a question in slack to include pg_partman
in the container we publish. There are apparently multiple users[1] creating containers based on our containers to have pg_partman
available.
We might want to include common plugins used together with Citus. Extensions that come to mind are:
-
pg_partman
- ~~
hll
~~ (is already included)
Lets collect common used extensions here and discuss whether we should include some and which.
[1]: tstm, sfriquet
We'd love for Citus to include pg_partman
in the official Docker image. We immediately ran into this blocker trying to run experiments locally.
We'd also like to have pg_partman
and pg_cron
in the official image. Any plans to have this done?
There are apparently multiple users creating containers based on our containers to have pg_partman available
Good! The intent here is this image demonstrates a minimum base on top of which others can build a better production-ready image, etc. I don't think it really makes sense to bloat it up with other extensions most users will not need.
OTOH, maybe we should consider doing what e.g. debian
does, which is to have a slim
variant that is the bare minimum and put extra things in the other variant (though I'd prefer the unqualified citus
image be the slim version and the install everything! version have some other name (I'm unclear on what wording I'd use there)).
I don't think it really makes sense to bloat it up with other extensions most users will not need.
Citus Cloud comes with those extensions (partman, cron) though, so if you want to replicate your cloud environment for testing purposes you have to build your own image.
We’ve got one at algolia/citus for this purpose.
Citus Cloud comes with those extensions (partman, cron) though, so if you want to replicate your cloud environment for testing purposes you have to build your own image.
That's a pretty compelling argument, actually, and gives us a good answer to "where do we stop including extensions, if we're going to include things other than Citus". I just wanted to avoid having to make the choices about what to include in the image.
OK, I think I'm convinced to have the main image match Cloud and the other image be called slim
and have only Citus.
related to https://github.com/citusdata/docker/issues/207 we will track from that issue
I agree there is 'where do we stop' argument, but I also feel like there's a middle ground where the documentation itself show's very easy steps to install the extensions onto the container yourself.
Not everyone uses every extension, but I would say most people are using some extension.
Let's just 'invert control' to people to allow them to easily install their own.