gpt4 book ai didi

docker - Laradock:每个项目的独立环境还是多个项目的单一环境?

转载 作者:行者123 更新时间:2023-12-02 07:17:28 24 4
gpt4 key购买 nike

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

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

最佳答案

假设您有 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)。

关于docker - Laradock:每个项目的独立环境还是多个项目的单一环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56235027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com