From bbb991ee9afc20df3026b48b211757905bfd7688 Mon Sep 17 00:00:00 2001 From: karthiksai15 <200392744+karthiksai15@users.noreply.github.com> Date: Thu, 18 Jun 2026 15:48:50 +0530 Subject: [PATCH] Improve diagnostics when /bin/sh is unavailable --- .../internal/InternalCommandPortListeningCheck.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/testcontainers/containers/wait/internal/InternalCommandPortListeningCheck.java b/core/src/main/java/org/testcontainers/containers/wait/internal/InternalCommandPortListeningCheck.java index aeedbea1e3f..51f9be58cef 100644 --- a/core/src/main/java/org/testcontainers/containers/wait/internal/InternalCommandPortListeningCheck.java +++ b/core/src/main/java/org/testcontainers/containers/wait/internal/InternalCommandPortListeningCheck.java @@ -53,10 +53,21 @@ public Boolean call() { result.getExitCode(), result.getStdout() ); + int exitCode = result.getExitCode(); - if (exitCode != 0 && exitCode != 1) { + + if (exitCode == 127 && result.getStderr() != null && result.getStderr().contains("/bin/sh")) { + log.warn( + "Container image does not contain /bin/sh. " + + "The internal port check cannot be executed. " + + "Consider using a more specific WaitStrategy. " + + "Original error: {}", + result.getStderr() + ); + } else if (exitCode != 0 && exitCode != 1) { log.warn("An exception while executing the internal check: {}", result); } + return exitCode == 0; } catch (Exception e) { throw new IllegalStateException(e);