The pihole part is mostly a copy-paste of the docker-compose.yml example you can find over at the pihole's documentation.
I decided to throw unbound into the loop. However, I haven't gotten around to actually make it communicate properply with pihole...