run.sh 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/bin/bash
  2. set -eo pipefail
  3. dir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
  4. dbImage='mariadb:10.5'
  5. # ensure the dbImage is ready and available
  6. if ! docker image inspect "$dbImage" &> /dev/null; then
  7. docker pull "$dbImage" > /dev/null
  8. fi
  9. serverImage="$1"
  10. dbPass="test-$RANDOM-password-$RANDOM-$$"
  11. dbName="test-$RANDOM-db"
  12. dbUsr="test-$RANDOM-db"
  13. # Create an instance of the container-under-test
  14. dbCid="$(docker run -d \
  15. -e MYSQL_RANDOM_ROOT_PASSWORD=yes \
  16. -e MYSQL_USER="$dbUsr" \
  17. -e MYSQL_PASSWORD="$dbPass" \
  18. -e MYSQL_DATABASE="$dbName" \
  19. "$dbImage")"
  20. trap "docker rm -vf $dbCid > /dev/null" EXIT
  21. cid="$(docker run -d \
  22. --link "$dbCid":db \
  23. -e MYSQL_HOST="db" \
  24. -e MYSQL_USER="$dbUsr" \
  25. -e MYSQL_PASSWORD="$dbPass" \
  26. -e MYSQL_DATABASE="$dbName" \
  27. -e NEXTCLOUD_ADMIN_USER="test-$RANDOM-user" \
  28. -e NEXTCLOUD_ADMIN_PASSWORD="test-$RANDOM-password" \
  29. "$serverImage")"
  30. trap "docker rm -vf $cid $dbCid > /dev/null" EXIT
  31. _occ() {
  32. docker exec -u www-data "$cid" php occ "$@"
  33. }
  34. # Give some time to install
  35. . "$dir/../../retry.sh" --tries 30 '_occ app:list' > /dev/null
  36. # Check if NextCloud is installed
  37. _occ status | grep -iq 'installed: true'
  38. _occ check