diff --git a/docker/wp-config.php b/docker/wp-config.php
index 72a27bf3b44cdf8125bd593ecab413684e06b068..b51d616d57089be2546f3729518e2809eb7e95ab 100644
--- a/docker/wp-config.php
+++ b/docker/wp-config.php
@@ -181,6 +181,19 @@ if (array_key_exists('debug_cookie_name', $noblogs_config) &&
         define('WP_DEBUG', true);
         define('WP_DEBUG_LOG', true);
         define('WP_DEBUG_DISPLAY', false);
+
+    // Warning handler that dumps stack traces.
+    class WarningWithStacktrace extends ErrorException {}
+    set_error_handler(function($severity, $message, $file, $line) {
+        if ($severity & (E_WARNING | E_NOTICE | E_USER_WARNING | E_USER_NOTICE)) {
+            $ex = new WarningWithStacktrace($message, 0, $severity, $file, $line);
+            echo "\n" . $ex . "\n\n";
+            return true;
+        } else {
+            throw new ErrorException($message, 0, $severity, $file, $line);
+        }
+    });
+
 } else {
     define('WP_DEBUG', false);
 }