Docker compose不会等到容器准备就绪,而只会等到容器正在运行。
depends_on只会确保
logstash在您的节点容器之前启动,但是再次声明,这并不意味着它将等待直到准备就绪。
您可以自己在节点上处理检查,也可以使用包装器脚本。在docker-compose文档中,他们建议使用wait-for-
it或dockerize
你可以在这里阅读更多
定制包装
您的节点容器
command可以从
node index.js(或您拥有的任何容器)更改为
bash wait-for-logtash.sh:
#!/bin/bash## Or whatever command is used for checking logstash availabilityuntil curl 'http://logstash:5045' 2> /dev/null; do echo "Waiting for logtash..." sleep 1; done# Start your servernode index.js



