As much as i loved the autonomy of self hosting my DNS setup, these headaches are what drove to switch to the Tailscale + NextDNS setup: https://tailscale.com/blog/nextdns/
If you want the easiest possible solution, I'd suggest using BalenaOS and the PiHole Fleet. It's gonna take u setting up an account with Balena Cloud, but after that you just download an image, burn to the sd or ssd, and wait for it to download the pihole images and run it.
If you really just want docker-compose, at #coolab we've run PiHole successfully in many Pi4s using this docker-compose setup.
We setup Pihole on 23 pi 3 and 4s running the Guarita project, which is based on BalenaOS. We added some additional scripting to add automatic youtube-ad blocking which is pretty awesome and also some other stuff that u might not be interested.
I run a pihole on docker at home frrom my NAS-like device and have been doing so for nearly 2 years now. (I ran a pi before, that but the constant heat of my small army of aurora bots, house automations, SSB stuff and other things got to the pi and made it burn out). It has worked really well so far!
The only thing you have to remember is to log in every now and then and update the docker image.
The first results on google (those paid ones) will no longer work, but other than that it works great!