The problem with waiting for a container to be ready is that in a Distributed System, some services or hosts may become unavailable sometimes. Similarly during startup also some services may also be down. Therefore, we have to build resiliency in our application. So that even if some services are down we can continue our work or wait for the service to become available again. We can use wait-for-it or dockerize tools for building this kind of resiliency.