github.com/drud/ddev@v1.21.5-alpha1.0.20230226034409-94fcc4b94453/containers/ddev-dbserver/test/functions.sh (about)

     1  #!/bin/bash
     2  
     3  function basic_setup {
     4      export CONTAINER_NAME="testserver"
     5      export HOSTPORT=33000
     6      export MYTMPDIR="${HOME}/tmp/testserver-sh_${RANDOM}_$$"
     7      export outdir="${HOME}/tmp/mariadb_testserver/output_${RANDOM}_$$"
     8      export VOLUME="dbserver_test-${RANDOM}_$$"
     9  
    10      export MOUNTUID=33
    11      export MOUNTGID=33
    12  
    13      # Homebrew mysql client really really wants /usr/local/etc/my.cnf.d
    14      if [ "${OS:-$(uname)}" != "Windows_NT" ] && [ ! -d "$(brew --prefix)/etc/my.cnf.d" ]; then
    15          mkdir -p "$(brew --prefix)/etc/my.cnf.d" || sudo mkdir -p "$(brew --prefix)/etc/my.cnf.d"
    16      fi
    17      docker rm -f ${CONTAINER_NAME} 2>/dev/null || true
    18  
    19      # Initialize the volume with the correct ownership
    20      docker run --rm -v "${VOLUME}:/var/lib/mysql:nocopy" busybox:stable chown -R ${MOUNTUID}:${MOUNTGID} /var/lib/mysql
    21  }
    22  
    23  function teardown {
    24    docker rm -f ${CONTAINER_NAME}
    25    docker volume rm $VOLUME || true
    26  }
    27  
    28  # Wait for container to be ready.
    29  function containercheck {
    30    for i in {15..0}; do
    31      # fail if we can't find the container
    32      if ! docker inspect ${CONTAINER_NAME} >/dev/null; then
    33        break
    34      fi
    35  
    36      status="$(docker inspect ${CONTAINER_NAME} | jq -r '.[0].State.Status')"
    37      if [ "${status}" != "running" ]; then
    38        break
    39      fi
    40      health="$(docker inspect --format '{{json .State.Health }}' ${CONTAINER_NAME} | jq -r .Status)"
    41      case ${health} in
    42      healthy)
    43        return 0
    44        ;;
    45      *)
    46        sleep 1
    47        ;;
    48      esac
    49    done
    50    echo "# --- ddev-dbserver FAIL -----"
    51    return 1
    52  }