当另一个停止的时候,Docker组合起来

我想知道,是否有任何选项在Docker Compose中逐一启动容器? 例如,我想启动DB容器和特殊的容器来初始化这个数据库,主容器应该在init容器完成后启动。 或者我想在一个容器中编译,然后在另一个容器中打包。 据我所知,在Kubernetes中有一些叫做“init pod”的东西,类似于这个。 在Docker Compose中有没有其他select?

那么你为什么不使用depends_on标签

depends_on: - <YourDockerContainer> 

看下面这个例子在哪里

Kibana依赖于ElasticSearch和Fluentd,而Elasticsearch依赖于使用depends_on标签的fluentd

  fluentd: image: fluentd elasticsearch: image: elasticsearch depends_on: - fluentd kibana: image: kibana depends_on: - fluentd - elasticsearch 

开始的顺序将是

1> fluentd

2> elasticsearch

3> kibana

你在这里试图从根本上不指作为服务。 如注释中所详述,服务是一个长期运行的过程,与其他服务交互以形成应用程序。

我build议你看看dobi它运行项目任务(如运行一个shell,运行unit testing,运行迁移)。

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