【发布时间】:2021-10-04 04:06:03
【问题描述】:
问题-
我有一个包含 6 个服务的 docker-compose.yml。当我执行 docker-compose up 时,所有 6 个容器都启动了,但我需要 2 个容器来开始它的工作,并根据条件休息 4 个容器。
说明-
compose 中的 6 个服务(所有用户 2 个服务和 2 个用户 4 个服务):-
-2 为所有用户服务
我正在第一个容器中装载登录所需页面
我在第二个容器中维护了登录帐户的数据库
为每个用户提供-2个服务
- 根据用户,我从登录页面重定向到不同的应用程序
- 此时,我将他/她的应用程序安装在一个容器中,将数据库安装在另一个容器中。
有没有办法,当我运行 docker-compose up - 它应该只启动所有用户共有的 2 个服务,并且根据用户登录,我需要启动其他 2 个安装了他/她的应用程序的服务? ?
【问题讨论】:
-
我不确定我是否完全理解,但看起来您想为每个用户创建一两个容器。这非常浪费资源,而不是容器的用途。容器是许多用户使用的服务的构建块。至于让容器基于其他容器启动,您目前可以使用类似github.com/vishnubob/wait-for-it 的脚本
-
这超出了 docker-compose 的范围。这不是真正的 docker 方式,但您可以为此编写自己的 API,它会正常工作。鉴于您只有 2 个用户,为什么不直接启动所有内容?
-
您正在尝试构建微服务架构,但这样做的方式绝对错误。如果我正确理解您的意图,您应该解耦 2 和 2(每个用户 2 组 2 个服务,2x2=4)服务,拆分 docker-composer 并在需要时使用自己的 api 运行它们,正如@Matthew 建议的那样以上
标签: docker docker-compose