根据条件启动docker集装箱
问题-
我有一个有6个服务的docker-compose.yml。 当我执行docker组成,所有6个容器开始,但我需要2个容器开始其工作,并根据条件rest4个容器。
描述-
6个服务组合(2个服务为所有用户和4个服务为2个用户): –
-2服务为所有用户
-
我在第一个容器中login需要的页面
-
我维护第二个容器中的login帐户的数据库
-2服务为每个用户
- 基于用户,我从login页面redirect到不同的应用程序
- 在这一点上,我把他/她的应用程序安装在另一个容器和数据库中。
有没有办法,当我运行docker组成 – 它应该启动只有2服务共同所有用户和基于用户login我需要启动其他2服务,他/她的应用程序安装?
基于用户的这种做法需要Docker Compose之外的逻辑,但是您可以configuration。
扩展服务
您可能可以使用两个Docker Compose文件来实现类似的结果。
- 2服务为所有用户 – docker-compose.yml
- 2个用户的4个服务 – docker-compose.admin.yml
在docker-compose.admin.yml
将补充或覆盖原始撰写文件中的设置以及其他容器。 您可以使用覆盖来更改任何东西,包括发送到容器的ENVvariables或卷。
运行docker-compose up
,为所有用户启动两项服务。
您可以运行所有六个容器
docker-compose -f docker-compose.yml -f docker-compose.admin.yml up
别名
在你的.bashrc
设置一个别名会使这个日常使用变得更容易。
# For regular users alias comp="docker-compose" # For two special users alias comp="docker-compose -f docker-compose.yml -f docker-compose.admin.yml"
通过这个设置,所有的用户都可以使用comp up
或comp down
获得适当的容器。
文件
请参阅Docker文档中的详细信息:
在撰写中扩展服务