当另一个停止的时候,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