Ver Fonte

cli/health.php: output a diagnostic when the health check fails (#8980)

Previously the Docker healthcheck script exited with a bare die(1) /
die(2) and no message, so users only saw 'unhealthy' with no clue why.
Print an informative reason to STDERR before each failing exit (a
connection/HTTP error, or a response that is not a FreshRSS page),
without changing the exit codes relied on by Docker HEALTHCHECK.

For https://github.com/FreshRSS/FreshRSS/issues/8026

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Jam Balaya há 2 dias atrás
pai
commit
6351a71938
1 ficheiros alterados com 6 adições e 0 exclusões
  1. 6 0
      cli/health.php

+ 6 - 0
cli/health.php

@@ -27,10 +27,16 @@ $content = curl_exec($ch);
 $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 
 if ($httpCode !== 200 || !is_string($content)) {
+	$curlError = curl_error($ch);
+	fwrite(STDERR, 'Error: Health check failed for ' . $address . ': ' .
+		($curlError !== '' ? $curlError : ('unexpected HTTP status ' . $httpCode)) . PHP_EOL);
 	die(1);
 }
 
 $content = rtrim($content, "\n\r");
 if (!str_starts_with($content, '<!DOCTYPE html>') || !str_ends_with($content, '</html>') || !str_contains($content, '/scripts/api.js')) {
+	fwrite(STDERR, 'Error: Health check failed for ' . $address .
+		': the response does not look like a FreshRSS page' .
+		' (check that the URL points to a working FreshRSS instance with the API enabled).' . PHP_EOL);
 	die(2);
 }