diff --git a/php/src/Container/ContainerState.php b/php/src/Container/ContainerState.php
index f6481027fddb..d5c550f48eb9 100644
--- a/php/src/Container/ContainerState.php
+++ b/php/src/Container/ContainerState.php
@@ -9,4 +9,5 @@ enum ContainerState: string {
case Running = 'running';
case Starting = 'starting';
case Stopped = 'stopped';
+ case Unhealthy = 'unhealthy';
}
diff --git a/php/src/Docker/DockerActionManager.php b/php/src/Docker/DockerActionManager.php
index 12a641e0869b..e980706c2c91 100644
--- a/php/src/Docker/DockerActionManager.php
+++ b/php/src/Docker/DockerActionManager.php
@@ -49,10 +49,12 @@ public function GetContainerRunningState(Container $container) : ContainerState
$responseBody = json_decode((string)$response->getBody(), true);
- if ($responseBody['State']['Running'] === true) {
- return ContainerState::Running;
- } else {
+ if ($responseBody['State']['Running'] !== true) {
return ContainerState::Stopped;
+ } elseif(array_key_exists('Health', $responseBody['State']) && $responseBody['State']['Health']['Status'] !== 'healthy') {
+ return ContainerState::Unhealthy;
+ } else {
+ return ContainerState::Running;
}
}
diff --git a/php/templates/containers.twig b/php/templates/containers.twig
index 9bcef1cdc6fe..8a14bcec5d49 100644
--- a/php/templates/containers.twig
+++ b/php/templates/containers.twig
@@ -268,6 +268,13 @@
(docs)
{% endif %}
+ {% elseif container.GetRunningState().value == 'unhealthy' %}
+
+ {{ container.GetDisplayName() }} (Unhealthy)
+ {% if container.GetDocumentation() != '' %}
+ (docs)
+ {% endif %}
+
{% elseif container.GetRunningState().value == 'running' %}
{{ container.GetDisplayName() }} (Running)