我有下面的Docker文件,我正在尝试使用wait-for-it.sh,以便在Kafka可用之后控制中心出现
control-center:
image: confluentinc/cp-enterprise-control-center
hostname: control-center
restart: always
depends_on:
- zookeeper
- kafka
- schema_registry
- connect
command: ["./wait-for-it.sh", "kafka:9092"]当我执行docker-组合时,我会得到以下错误:
无法启动服务控制中心: OCI运行时创建失败: container_linux.go:296:启动容器进程导致"exec:\“./等待-for-it.sh\”:stat ./等待-for-it.sh:没有这样的文件或目录“:未知
我在Windows 10上,使用和PowerShell。
发布于 2018-02-28 05:23:17
只有当您使用具有./wait-for-it.sh的图像时,它才能工作。您可以创建您自己的Dockerfile,该文件扩展了confluentinc/cp-enterprise-control-center,并为start命令设置了包装脚本。
您可以使用docker版本2完成类似的任务,这是对kafka容器和depends_on的健康检查。
我不认为这在撰写文件版本3中有效。
在控制中心部分是这样的:
depends_on:
kafka:
condition: service_healthy卡夫卡部分中这样的内容:(不知道这个卷曲命令是否会正确地检查卡夫卡。可能有更好的命令)
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9092"]
interval: 1m30s
timeout: 10s
retries: 3
start_period: 40s(来自https://docs.docker.com/compose/compose-file/compose-file-v2 )
然后也许这个在最上面
version: '2.3'我想他们说编写文件版本3的某个地方实际上是用于坞群的,这就是为什么它不支持这个特性,而且如果您不使用docker群,您可以继续使用版本2。
..。
如果等待另一个容器启动就是您想要做的事情,那么以上就是全部。on in docker-compose Version 3?解释说,这可能不再是推荐的方法,因为它不会处理容器重新启动。
我想这取决于你的船坞是为了测试还是为了生产。
https://stackoverflow.com/questions/49021851
复制相似问题