运行依赖于其他容器的多容器应用程序

时间:2019-10-08 11:58:31

标签: docker docker-compose dockerfile

我是docker的新手。

我的问题是-我有一个多容器应用程序(zookeeper,kafka,生产者,消费者),在其中我要运行Zookeeper和kafka容器之后才运行生产者和消费者容器。如何编辑docker-compose文件并实现这一目标?预先感谢

2 个答案:

答案 0 :(得分:1)

depends_on指令仅允许您管理启动顺序
但是,它不会在触发下一个服务之前等待您的服务启动并运行

如果您希望在依赖关系建立后启动服务,则必须使用wait-for-itdockerize之类的工具。

您可以在official Docker documentation

上找到更多信息。

答案 1 :(得分:0)

检查docker-compose文档中的 depends_on 指令。

__来自文档__

  

depends_on服务之间的Express依赖性,服务依赖性   导致以下行为:

     

docker-compose up以依赖关系顺序启动服务。在里面   在下面的示例中,db和redis在Web之前启动。

     

docker-compose up SERVICE自动包含SERVICE的   依赖性。在以下示例中,docker-compose up web也   创建并启动db和redis。

     

docker-compose stop以依赖关系顺序停止服务。在里面   下面的示例在db和redis之前停止了Web。

简单的例子:

version: "3.7"
services:
  web:
    build: .
    depends_on:
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres