run.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/bash
  2. set -eo pipefail
  3. dir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
  4. dbImage='postgres:11-alpine'
  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" # dbName has to be set to something that does not require escaping: https://github.com/docker-library/official-images/pull/6252#issuecomment-520095703
  12. dbUsr="test-$RANDOM-db"
  13. # Create an instance of the container-under-test
  14. # not setting POSTGRES_DB due to https://github.com/nextcloud/docker/issues/345
  15. dbCid="$(docker run -d \
  16. -e POSTGRES_USER="$dbUsr" \
  17. -e POSTGRES_PASSWORD="$dbPass" \
  18. -e POSTGRES_DB='postgres' \
  19. "$dbImage")"
  20. trap "docker rm -vf $dbCid > /dev/null" EXIT
  21. # NEXTCLOUD_ADMIN_USER has to be set to something that does not require escaping: https://github.com/docker-library/official-images/pull/6252#issuecomment-520095703
  22. cid="$(docker run -d \
  23. --link "$dbCid":db \
  24. -e POSTGRES_HOST='db' \
  25. -e POSTGRES_USER="$dbUsr" \
  26. -e POSTGRES_PASSWORD="$dbPass" \
  27. -e POSTGRES_DB="$dbName" \
  28. -e NEXTCLOUD_ADMIN_USER="test_$RANDOM" \
  29. -e NEXTCLOUD_ADMIN_PASSWORD="test-$RANDOM-password" \
  30. "$serverImage")"
  31. trap "docker rm -vf $cid $dbCid > /dev/null" EXIT
  32. _occ() {
  33. docker exec -u www-data "$cid" php occ "$@"
  34. }
  35. # Give some time to install
  36. . "$dir/../../retry.sh" --tries 60 '_occ app:list' > /dev/null
  37. # Check if NextCloud is installed
  38. _occ status | grep -iq 'installed: true'
  39. _occ check