I used wait_for_it.sh for the purpose described in the OP until I found healtchecks could be used instead.
[0] https://github.com/peter-evans/docker-compose-healthcheck
As this repository mentions, this is the example using PostgreSQL.
depends_on: postgres-database: condition: service_healthy
healthcheck: test: ["CMD-SHELL", "pg_isready"] interval: 10s timeout: 5s retries: 5
However, PostgreSQL has already a command for this called pg_isready.
How is this going to work for other cases such as MySQL?
You could do a query like SHOW DATABASES as a healthcheck for mysql.
I used wait_for_it.sh for the purpose described in the OP until I found healtchecks could be used instead.
[0] https://github.com/peter-evans/docker-compose-healthcheck