From 7f0bc4ad83b17b48b4fde01e23cc1a582854af26 Mon Sep 17 00:00:00 2001 From: Sergei Egorov Date: Mon, 6 Mar 2017 12:21:59 +0200 Subject: [PATCH 1/2] Docker for Windows: Use command-based port checker --- .../containers/wait/HostPortWaitStrategy.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java b/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java index 77fa9a78e70..64d3be64b1b 100644 --- a/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java +++ b/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java @@ -7,6 +7,7 @@ import org.testcontainers.containers.ContainerLaunchException; import org.testcontainers.containers.GenericContainer; import org.testcontainers.dockerclient.ProxiedUnixSocketClientProviderStrategy; +import org.testcontainers.dockerclient.WindowsClientProviderStrategy; import java.net.Socket; import java.util.List; @@ -32,8 +33,7 @@ protected void waitUntilReady() { Callable checkStrategy; - // Special case for Docker for Mac, see #160 - if (isUsingSocketProxyOnMac()) { + if (isApplicable()) { List exposedPorts = container.getExposedPorts(); Integer exposedPort = exposedPorts.stream() @@ -91,8 +91,18 @@ protected void waitUntilReady() { } } - private boolean isUsingSocketProxyOnMac() { - return DockerClientFactory.instance().isUsing(ProxiedUnixSocketClientProviderStrategy.class) - && System.getProperty("os.name").toLowerCase().contains("mac"); + private boolean isApplicable() { + // Special case for Docker for Mac, see #160 + if(DockerClientFactory.instance().isUsing(ProxiedUnixSocketClientProviderStrategy.class) + && System.getProperty("os.name").toLowerCase().contains("mac")) { + return true; + } + + // Special case for Docker for Windows, see #160 + if (DockerClientFactory.instance().isUsing(WindowsClientProviderStrategy.class)) { + return true; + } + + return false; } } From 61908d973e94d8a49f24447c5863ca4ca8817e70 Mon Sep 17 00:00:00 2001 From: Sergei Egorov Date: Fri, 10 Mar 2017 20:15:13 +0200 Subject: [PATCH 2/2] rename isApplicable -> shouldCheckWithCommand --- .../testcontainers/containers/wait/HostPortWaitStrategy.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java b/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java index 64d3be64b1b..3b3098a5372 100644 --- a/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java +++ b/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java @@ -33,7 +33,7 @@ protected void waitUntilReady() { Callable checkStrategy; - if (isApplicable()) { + if (shouldCheckWithCommand()) { List exposedPorts = container.getExposedPorts(); Integer exposedPort = exposedPorts.stream() @@ -91,7 +91,7 @@ protected void waitUntilReady() { } } - private boolean isApplicable() { + private boolean shouldCheckWithCommand() { // Special case for Docker for Mac, see #160 if(DockerClientFactory.instance().isUsing(ProxiedUnixSocketClientProviderStrategy.class) && System.getProperty("os.name").toLowerCase().contains("mac")) {