official-images/test/tests/nextcloud-cli-mysql/run.sh

45 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
set -eo pipefail
dir="$(dirname "$(readlink -f "$BASH_SOURCE")")"
dbImage='mariadb:10.11'
# ensure the dbImage is ready and available
if ! docker image inspect "$dbImage" &> /dev/null; then
docker pull "$dbImage" > /dev/null
fi
serverImage="$1"
dbPass="test-$RANDOM-password-$RANDOM-$$"
dbName="test-$RANDOM-db"
dbUsr="test-$RANDOM-db"
# Create an instance of the container-under-test
dbCid="$(docker run -d \
-e MYSQL_RANDOM_ROOT_PASSWORD=yes \
-e MYSQL_USER="$dbUsr" \
-e MYSQL_PASSWORD="$dbPass" \
-e MYSQL_DATABASE="$dbName" \
"$dbImage")"
trap "docker rm -vf $dbCid > /dev/null" EXIT
cid="$(docker run -d \
--link "$dbCid":db \
-e MYSQL_HOST="db" \
-e MYSQL_USER="$dbUsr" \
-e MYSQL_PASSWORD="$dbPass" \
-e MYSQL_DATABASE="$dbName" \
-e NEXTCLOUD_ADMIN_USER="test-$RANDOM-user" \
-e NEXTCLOUD_ADMIN_PASSWORD="test-$RANDOM-password" \
"$serverImage")"
trap "docker rm -vf $cid $dbCid > /dev/null" EXIT
_occ() {
docker exec -u www-data "$cid" php occ "$@"
}
# Give some time to install
. "$dir/../../retry.sh" --tries 10 --sleep 5 '_occ app:list' > /dev/null
# Check if NextCloud is installed
_occ status | grep -iq 'installed: true'
_occ check