有一个很好的答案https://stackoverflow.com/questions/47849096/running-multiple-websites-docker-compose但它只在你拥有如下结构时才有效
└───project
│ docker-compose.yml
│
├───reverseproxy
│ Dockerfile
│ nginx.conf
│
├───website1.com
│ Dockerfile
│
└───website2
Dockerfile
(当然除了提到的之外还有一些其他的内容,但这些是最重要的)
但我认为通常结构是不同的(至少它对我来说是有意义的并且我目前使用它):
└───projects
├───website1.com
│ docker-compose.yml
│ Dockerfile
│
├───website2
│ docker-compose.yml
│ Dockerfile
│
└───website3
docker-compose.yml
Dockerfile
每个“网站”文件夹都是一个独立的 git 存储库。每个网站都可以单独克隆并在本地运行。因此,对于 website1.com 开发,您无需克隆托管在同一服务器上的所有其他 100 个网站。
问题是 - 有了这种结构(适合本地测试\开发),我该如何“合并”/“合并”生产服务器中的所有网站?看起来像遗产最适合这里,但有报道问题对于 docker-compose 来说,如果没有丑陋的解决方法,它几乎毫无用处......
我想要实现的目标是:
- 保留克隆一个网站并在本地运行的可能性,以进行开发
- 在生产中可以“一键”运行所有网站
- 在生产中可以在“共享”容器中运行某些东西(例如用于路由和处理 HTTPS 的 nginx 反向代理;也可以是用于发送电子邮件的容器化 SMTP 服务器)