This Running multiple websites - docker compose is a good answer, but it works only when you have structure like
└───project
│ docker-compose.yml
│
├───reverseproxy
│ Dockerfile
│ nginx.conf
│
├───website1.com
│ Dockerfile
│
└───website2
Dockerfile
(of course there is some other stuff except mentioned, but that's the most important ones)
But I think that usually structure is different (at least it both makes sense for me and I use it currently):
└───projects
├───website1.com
│ docker-compose.yml
│ Dockerfile
│
├───website2
│ docker-compose.yml
│ Dockerfile
│
└───website3
docker-compose.yml
Dockerfile
Each of "website" folders is a separated git repo. Each website can be cloned by itself and run locally. So for website1.com development you don't need to clone all other 100 websites hosted on the same server.
And here is the question - having this structure (which is good for local testing\development) how do I "combine"/"merge" all websites in production server? Looks like inheritance would be most suitable here, but there is reported issue for docker-compose which makes it almost useless without ugly workarounds...