Laradock:每个项目使用单独的环境还是多个项目使用单个环境?

时间:2019-05-21 09:15:13

标签: docker laradock

Laradock提供了两个选项:(1)每个项目使用单独的Docker环境,(2)您所有项目使用单个Docker环境。

两种设置之间有什么区别?如果我有两个要部署到单个Droplet(Digitalocean)上的项目,每个项目都使用单独的域名,那么建议使用哪种设置?

1 个答案:

答案 0 :(得分:1)

假设您有2个项目:项目A和项目B。

在选项(1)中,为项目A创建一个docker环境,为项目B创建一个不同的docker环境。这意味着项目A的MySQL数据库将与项目B的MySQL数据库位于不同的容器中。我个人更喜欢这种方法,因为:

  • 它确保您每个项目都是独立的并且可以具有不同的依赖项。如果您需要为项目A更新MySQL版本,则可以轻松完成此操作,而无需也更新项目B。

  • 两个项目之间没有不必要的交互作用。项目A看不到项目B的数据,没有可能导致项目之间错误交互的错误配置。

另一方面,如果它们使用单​​独的docker环境,同时运行两个项目并非难事:您将需要修改很多配置,以使它们使用单​​独的端口而不会造成冲突。

选项(2)基本上是相反的。您为每个服务仅创建一个容器,并且两个项目使用相同的容器。您将拥有一个包含2个不同数据库的MySQL容器,一个数据库供项目A使用,一个数据库供项目B使用。 这种方法的主要优势是同时运行项目的能力,并且只需很少的精力。

另一方面,如果项目需要具有相同依赖性的其他版本,则事情会变得复杂,并且配置错误会导致意外的交互(例如,您可能错误地设置了一个项目和两个项目中的Redis数据库将共享同一存储桶,并且可能存在重叠和难以检测和调试的问题)

根据经验,如果两个项目相互之间非常依赖并且会一起开发,那么我会使用选项(2),而在所有其他情况下,我会使用选项(1)。