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