Wait For Mysql

wait-for-it.sh doing a great job of waiting for different services to become alive, but on #MacOs #docker is binding port on container start, seconds before #mysql is ready to accept connections

This script waits for first successful query from database or exits with non-zero status after timeout.

Don't forget to change $query for the actually working one.

# Waits for mysql to become actually availablewait_for_mysql() {  query="SELECT count(*) FROM users"    timeout=180 # 3 minutes limit  i=0    while ! docker exec -it "$1" mysql --user="$2"" -e "$query" do    sleep 1;    i=$(($i+1))    if [[ ${i} -ge ${timeout} ]]; then      echo "[Error] can't properly query MySQL after ${i} secs"      exit 1;    fi  done}# usage: wait_for_mysql miin-mysql-dev root password database

Wait for redis