From a36bd7ec2771ede94ad364974a13ef4090a4d394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Berg=20Glasius?= Date: Mon, 25 Nov 2024 10:06:08 +0100 Subject: [PATCH] WebDriverContainerHolder getHostIp did not get Host ip, but container IP --- .../plugin/geb/WebDriverContainerHolder.groovy | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/testFixtures/groovy/grails/plugin/geb/WebDriverContainerHolder.groovy b/src/testFixtures/groovy/grails/plugin/geb/WebDriverContainerHolder.groovy index 035f155..aaf9be0 100644 --- a/src/testFixtures/groovy/grails/plugin/geb/WebDriverContainerHolder.groovy +++ b/src/testFixtures/groovy/grails/plugin/geb/WebDriverContainerHolder.groovy @@ -15,6 +15,7 @@ */ package grails.plugin.geb +import com.github.dockerjava.api.model.ContainerNetwork import geb.Browser import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode @@ -25,6 +26,7 @@ import org.spockframework.runtime.extension.IMethodInvocation import org.spockframework.runtime.model.SpecInfo import org.testcontainers.Testcontainers import org.testcontainers.containers.BrowserWebDriverContainer +import org.testcontainers.containers.PortForwardingContainer import java.time.Duration @@ -117,8 +119,16 @@ class WebDriverContainerHolder { configuration.hostName != ContainerGebConfiguration.DEFAULT_HOSTNAME_FROM_CONTAINER } - private String getHostIp() { - currentContainer.getContainerInfo().getNetworkSettings().getNetworks().entrySet().first().value.ipAddress + private static String getHostIp() { + try { + PortForwardingContainer.getDeclaredMethod("getNetwork").with { + accessible = true + Optional network = invoke(PortForwardingContainer.INSTANCE) as Optional + return network.get().ipAddress + } + } catch (Exception e) { + throw new RuntimeException("Could not access network from PortForwardingContainer", e) + } } @CompileStatic