当另一个停止时,Docker构成启动容器

时间:2017-08-14 11:10:28

标签: docker docker-compose

我想知道,有没有选择在Docker Compose中逐个启动容器? 例如,我想启动数据库容器和特殊容器来初始化这个数据库,并且应该在初始化容器完成后启动主应用程序。 或者我想在一个容器中执行编译,然后在另一个容器中打包。 据我所知,在Kubernetes中有一种叫做“init pods”的东西,类似于此。 Docker Compose有什么替代方案吗?

2 个答案:

答案 0 :(得分:0)

您在此尝试做的事情从根本上并不是指服务。如comment中所述,service是一个长期运行的进程,它与其他服务交互以形成应用程序。

我建议你看看dobi它运行项目任务(比如运行shell,运行单元测试,运行迁移)。

这里有一个组合集成和运行数据库迁移的示例:https://github.com/dnephin/dobi/tree/master/examples/init-db-with-rails

答案 1 :(得分:-1)

为什么不使用depends_on标签

   depends_on: 
      - <YourDockerContainer>

查看下面的示例

Kibana依赖于ElasticSearch并且流利,而Elasticsearch依赖于使用depends_on标签的流利

 fluentd:
    image: fluentd

 elasticsearch:
    image: elasticsearch
 depends_on: 
   - fluentd  

 kibana:
    image: kibana
 depends_on: 
   - fluentd
  - elasticsearch

开始顺序将是

1&GT; fluentd

2 - ; elasticsearch

3&GT; kibana

相关问题