我是docker的新手。
我的问题是-我有一个多容器应用程序(zookeeper,kafka,生产者,消费者),在其中我要运行Zookeeper和kafka容器之后才运行生产者和消费者容器。如何编辑docker-compose文件并实现这一目标?预先感谢
答案 0 :(得分:1)
depends_on
指令仅允许您管理启动顺序。
但是,它不会在触发下一个服务之前等待您的服务启动并运行。
如果您希望在依赖关系建立后启动服务,则必须使用wait-for-it或dockerize之类的工具。
上找到更多信息。答案 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