I’ve successfully deployed Discourse to Production using Docker Compose with the published image as have clients.
However, yes, it’s messy and a reasonable amount of bespoke work is involved.
It is much easier to stick with the standard install with the CDCK launcher unless you really must use a different method because you have an opionated view, specific architecture or otherwise special requirements.