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 }