run.sh 640 B

123456789101112131415161718192021222324252627282930313233
  1. #!/bin/bash
  2. set -eo pipefail
  3. dir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
  4. image="$1"
  5. cname="mysql-container-$RANDOM-$RANDOM"
  6. cid="$(
  7. docker run -d \
  8. -e MYSQL_ALLOW_EMPTY_PASSWORD=1 \
  9. --name "$cname" \
  10. "$image" \
  11. --log-bin="foo-$RANDOM" \
  12. --server-id="$RANDOM"
  13. )"
  14. trap "docker rm -vf $cid > /dev/null" EXIT
  15. mysql() {
  16. docker run --rm -i \
  17. --link "$cname":mysql \
  18. --entrypoint sh \
  19. "$image" \
  20. -euc 'if command -v mariadb > /dev/null; then exec mariadb "$@"; else exec mysql "$@"; fi' -- \
  21. -uroot \
  22. -hmysql \
  23. --silent \
  24. "$@"
  25. }
  26. . "$dir/../../retry.sh" --tries 30 "echo 'SELECT 1' | mysql"
  27. # yay, must be OK