Using non-wizard-take-my-by-the-hand approach is not “opinionated, specific or special”
At any rate - the clue is having original docker image from discourse. As simple as that.
I tried using the official guide and “launcher” just to toy with the setup - with no luck (save for quite silly check if the user is root, which is just asking for problems).
I then turned to bitnami image (and their suggested compose file) from https://hub.docker.com/r/bitnami/discourse and one docker compose up
later (and a bunch of SQL error [which doesn’t bode well] as well as warning from ruby [same caveat] I got running instance of discourse:
Pure convoluted and “non-standard magic”…
So again - why there is no regular image?
Digging through sources and repositories I found that base image is used (https://hub.docker.com/r/discourse/base/) though it’s verioning/tagging surprised me (https://hub.docker.com/r/discourse/base/tags)… There are no sane versions I wondered? And indeed, looking at the main repo there didn’t seem to be any releases but hey - at least there are properly tagged versions (Tags · discourse/discourse · GitHub).
Now one wonder - why there are not matching images in the main docker hub?
So yeah - having a look at how things are organized I concur:
On the other hand (or rather: “how things should be”), example project (smaller in scope, but the reasoning stands): GitHub - miniflux/v2: Minimalist and opinionated feed reader.
It has sane releases: Releases · miniflux/v2 · GitHub
Which have corresponding images correctly tagged: https://hub.docker.com/r/miniflux/miniflux/tags
And then upgrading is just switching version from x to y (or using latest
tag so simple stop/pull/start will give updated version (which would run all required migrations automatically)
(oh, and the image is like 70x smaller but that’s yet another story)