Eh… this is I think the crucial difference and this “update from the admin interface” is somewhat of a reminder of old times, when you only had “web hosting” with php interpreter so everything was build around that notion. And I think this carried over to how Discourse work and is expected to be managed.
Well, that’s another thing I noticed - discourse is quite heavy (the container started consuming resources during startup at a scary level) so yeah - it may be a problem.
How those are “build” in the context of Ruby (which is mostly interpreted and not compiled language)?
Wouldn’t it be better to try to use off-the-shelf solutions? Even for postgres config can be easily changed by simply providing/mouting custom postgresql.conf
file, no need for completely custom image with baked in config… and even still - if that’s required, discourse could provide such pre-build image that would only be pulled instead of re-build every time…