根据条件启动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 upcomp down获得适当的容器。

文件

请参阅Docker文档中的详细信息:

在撰写中扩展服务