Advertisement
Guest User

Untitled

a guest
Apr 14th, 2019
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. # create mysql container
  4.  
  5. MYSQL_USER="admin"
  6. MYSQL_PASSWORD="passwd"
  7. CONTAINER_NAME="mysql_container"
  8.  
  9. docker run -d -t \
  10. --name ${CONTAINER_NAME} \
  11. -e MYSQL_ROOT_PASSWORD=abcde \
  12. -e MYSQL_DATABASE="exampledb" \
  13. -e MYSQL_USER=${MYSQL_USER} \
  14. -e MYSQL_PASSWORD=${MYSQL_PASSWORD} \
  15. mysql:5.7 \
  16. --network network \
  17. --network-alias db \
  18. --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
  19.  
  20. # get ip address of this container
  21. MYSQL_IP=$(docker inspect ${CONTAINER_NAME} | grep '"IPAddress"' | awk 'NR==2 {print $2}' | sed 's/"//g;s/\,//g')
  22.  
  23. # wait mysql to initialize, check status every 10 seconds
  24. MAX_LOOP=100
  25. START_TIME=$(date "+%s")
  26. CHECK_INTERVAL=10
  27.  
  28. COUNTER=1
  29. while ! mysql --protocol TCP -h ${MYSQL_IP} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} -e "show databases;" > /dev/null 2>&1; do
  30. sleep ${CHECK_INTERVAL}
  31. COUNTER=`expr ${COUNTER} + 1`
  32. CURR_TIME=$(date "+%s")
  33. INTERVAL=$((CURR_TIME-START_TIME))
  34. echo "Already wait mysql to initialize for ${INTERVAL} seconds"
  35. if [ ${COUNTER} -gt ${MAX_LOOP} ]; then
  36. >&2 echo "We have been waiting for MySQL too long already. Job failed"
  37. exit 1
  38. fi;
  39. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement