I was using Caddy for almost two month now. It proved to be awesome and super simple.
But I was lacking support for dynamic docker (or swarm) backend. So, I have created a tool called caddy-gen.
It is a standalone image which could be included into your docker-compose file. It consists of three main parts:
Caddy obviously
docker-gen to listen to docker events and regenerate configuration based on these events
forego to handle two processes in the same container