My organisation runs a web application and a forum, as well as a few other applications like bitwarden. I’ve containerised everything to achieve dev/prod parity and a simple development setup using docker compose. We use a very similar compose file to run it in production and it works very well for our basic use case.
I’d like to switch our forum to discourse, but I’m struggling to figure out how to maintain dev/prod parity and a simple development setup.
The docs suggest that even though discourse uses docker to install and run, it doesn’t actually fit into the container paradigm like other docker containers: you can’t add it to a compose/swarm/kubernetes stack and run it, connecting it to database and redis containers like you would another application container. And alternative solutions or suggestions are strongly discouraged in an effort to not bifurcate the community, so I’m not here to question the approach.
I’ve accepted that, rather than running and managing discourse the way I do the rest of my stack, I’ll need to run a dedicated VM in production and manage it differently. But I’m curious how to address my underlying goals: a simple development setup that has decent parity with production.
For context, my current development setup is “install docker, clone this repo, and run docker-compose up”. If I’m understanding correctly from the local installation guide, we’ll now need 9 system dependencies (ruby, postgres, etc.) before we manually clone and setup discourse itself. To my mind, one of the advantages of docker (and docker compose) is that you don’t need things like postgres and redis running on your system (and the associated issues with setting those up when devs are on windows); you can just run a stack and the processes are isolated to throaway containers. Is there any way to keep that advantage?
The other downside is, since we’re a small team of volunteers, most of the other developers are on windows 10 home, which as far as I know does not support WSL, which means they won’t be able to follow the windows install instructions anyway (docker does work on windows 10 home).