github.com/drud/ddev@v1.21.5-alpha1.0.20230226034409-94fcc4b94453/containers/ddev-ssh-agent/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      docker rm -f ${CONTAINER_NAME} 2>/dev/null || true
    14  
    15      # Initialize the volume with the correct ownership
    16      docker run --rm -v "${VOLUME}:/var/lib/mysql:nocopy" busybox:stable chown -R ${MOUNTUID}:${MOUNTGID} /var/lib/mysql
    17  }
    18  
    19  function teardown {
    20    docker rm -f ${CONTAINER_NAME}
    21    docker volume rm $VOLUME || true
    22  }
    23  
    24  # Wait for container to be ready.
    25  function containercheck {
    26    for i in {15..0}; do
    27      # fail if we can't find the container
    28      if ! docker inspect ${CONTAINER_NAME} >/dev/null; then
    29        break
    30      fi
    31  
    32      status="$(docker inspect ${CONTAINER_NAME} | jq -r '.[0].State.Status')"
    33      if [ "${status}" != "running" ]; then
    34        break
    35      fi
    36      health="$(docker inspect --format '{{json .State.Health }}' ${CONTAINER_NAME} | jq -r .Status)"
    37      case ${health} in
    38      healthy)
    39        return 0
    40        ;;
    41      *)
    42        sleep 1
    43        ;;
    44      esac
    45    done
    46    echo "# --- ddev-dbserver FAIL -----"
    47    return 1
    48  }