diff --git a/test-moodle.sh b/test-moodle.sh index 6279a389c94986e007bf828d8d49e78c5816449c..2f1a2bf1a6eda62271622c2fab8b205b2d9be16c 100644 --- a/test-moodle.sh +++ b/test-moodle.sh @@ -37,22 +37,23 @@ echo " -> Using Moodle URL: $MOODLE_URL" echo " -> Using Backend URL: $BACKEND_URL" # --- THIS IS THE FIX --- -# Instead of proceeding immediately, we will loop until the Moodle installation -# (run by docker-entrypoint.sh) is complete. We know it's complete when the -# config.php file exists inside the container. +# Instead of checking for a file, we now poll the database directly. +# The presence of the 'version' record in the config table is the true +# indicator that the initial installation has successfully completed. echo " -> Waiting for Moodle first-time installation to complete..." timeout=300 # 5 minute timeout -while ! docker exec "$MOODLE_CONTAINER" [ -f "$MOODLE_ROOT_IN_CONTAINER/config.php" ]; do +while ! docker exec "$DB_CONTAINER_NAME" mysql -u root -p"$DB_ROOT_PASSWORD" "$DB_NAME" -e "SELECT * FROM mdl_config WHERE name = 'version';" | grep -q "version"; do timeout=$((timeout - 5)) if [ $timeout -le 0 ]; then echo "❌ ERROR: Moodle installation timed out after 5 minutes." + echo "--- MOODLE CONTAINER LOGS ---" docker logs "$MOODLE_CONTAINER" exit 1 fi - echo " -> Installation not yet complete, waiting 5 more seconds..." + echo " -> Database not yet ready, waiting 5 more seconds..." sleep 5 done -echo "✅ Moodle installation complete (config.php found)." +echo "✅ Moodle installation complete (database version found)." # --- Pre-flight Checks & Plugin Install (Step 1) ---