vitess.io/vitess@v0.16.2/docker/mini/run.sh (about)

     1  #!/bin/bash
     2  #
     3  # Run a MiniVitess docker image, with details and credentials for a MySQL replication topology
     4  #
     5  
     6  TOPOLOGY_SERVER=""
     7  MYSQL_SCHEMA=""
     8  TOPOLOGY_USER=""
     9  TOPOLOGY_PASSWORD=""
    10  
    11  help() {
    12  cat <<- "EOF"
    13  Usage:
    14    docker/mini/run.sh <options>
    15  
    16  Mandatory options:
    17   -s <topology server>: in hostname[:port] format; a single MySQL server in your replication
    18                         topology from which MiniVitess will discover your entire topology
    19   -d <database name>:   database/schema name on your MySQL server. A single schema is supported.
    20   -u <mysql user>:      MySQL username with enough privileges for Vitess to run DML, and for
    21                         orchestrator to probe replication
    22   -p <mysql password>:  password for given user
    23  EOF
    24    exit 1
    25  }
    26  
    27  error_help() {
    28    local message="$1"
    29    echo "ERROR: $message"
    30    help
    31  }
    32  
    33  while getopts "s:d:u:p:h" OPTION
    34  do
    35    case $OPTION in
    36      h) help ;;
    37      s) TOPOLOGY_SERVER="$OPTARG" ;;
    38      d) MYSQL_SCHEMA="$OPTARG" ;;
    39      u) TOPOLOGY_USER="$OPTARG" ;;
    40      p) TOPOLOGY_PASSWORD="$OPTARG" ;;
    41      *) help ;;
    42    esac
    43  done
    44  
    45  if [ -z "$TOPOLOGY_SERVER" ] ; then
    46    error_help "Expected topology server"
    47  fi
    48  if [ -z "$MYSQL_SCHEMA" ] ; then
    49    error_help "Expected MySQL schema/database name"
    50  fi
    51  if [ -z "$TOPOLOGY_USER" ] ; then
    52    error_help "Expected MySQL user"
    53  fi
    54  if [ -z "$TOPOLOGY_PASSWORD" ] ; then
    55    error_help "Expected MySQL password"
    56  fi
    57  
    58  docker run --rm -it -p 3000:3000 -p 15000:15000 -p 15001:15001 -e "TOPOLOGY_SERVER=$TOPOLOGY_SERVER" -e "TOPOLOGY_USER=$TOPOLOGY_USER" -e "TOPOLOGY_PASSWORD=$TOPOLOGY_PASSWORD" -e "MYSQL_SCHEMA=$MYSQL_SCHEMA" --network=host vitess/mini:latest