Closed Floppy closed 4 months ago
Please don't. Speaking as a professional sysadmin/architect for 25 years, this just makes things harder for people who need to modify the installation without bloat (say use an external database/redis, like using AWS RDS or somesuch, etc). It also violates the principles of docker container design... it's just not a good idea.
Yeah, that's kind of why I've not done it yet. I'd like to make it simpler though... perhaps just having good docker-compose examples is fine though.
I generally think examples is fine. For self-hosted things, there has to be some amount of technical ability, otherwise one of the hosted or desktop app solutions would be better for most people.
linuxserver.io images do this using s6_overlay
; if I make an lsio version of the app (see #977), that would be the version that includes everything all rolled into one. Note to self, read https://www.tonysm.com/multiprocess-containers-with-s6-overlay/ at some point to work it all out.
We'd keep the separate docker container release though, if people want to run just the rails app themselves.
To add my 2 cents in here, having a "monolithic" container with everything all-in-one is great for deployment on things like unraid, synology, and other devices where users might not be well-versed in how to setup and manage different containers and expect things to be all-encompassing.
a sqlite database may be enough here for small installations? And redis seems lightweight enough that you could incoporate it into a single container.
Then you can give options w/ your standard container w/ separate dependencies and a single monolithic container for those that are using docker-run or aren't in the know as much on containers.
@CorneliousJD that's pretty much my thinking, and SQLite might well be good enough for that off-the-shelf use case.
The default image would still require separate databases, so that larger installs can be set up easily, and we don't break anything, but perhaps a new "unified" image would be good for those who don't want the faff.
So that we can have a single container, without any need for docker-compose to set up postgres and redis.