This is an automated email from the ASF dual-hosted git repository.

cmarcum pushed a commit to branch task/geb-testcontainers
in repository https://gitbox.apache.org/repos/asf/groovy-geb.git

commit 0592330386e481a398cfa8392883c61b7a76db29
Author: Carl Marcum <[email protected]>
AuthorDate: Sun Feb 22 18:57:58 2026 -0500

    fix container networking.
---
 .../grails/plugin/geb/WebDriverContainerHolder.groovy | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git 
a/integration/geb-testcontainers/src/main/groovy/grails/plugin/geb/WebDriverContainerHolder.groovy
 
b/integration/geb-testcontainers/src/main/groovy/grails/plugin/geb/WebDriverContainerHolder.groovy
index 0aad65fa..e1b22f45 100644
--- 
a/integration/geb-testcontainers/src/main/groovy/grails/plugin/geb/WebDriverContainerHolder.groovy
+++ 
b/integration/geb-testcontainers/src/main/groovy/grails/plugin/geb/WebDriverContainerHolder.groovy
@@ -424,6 +424,25 @@ class WebDriverContainerHolder {
     }
 
     private static String getHostIp() {
+        // In CI environments (container-in-container),
+        // withAccessToHost is disabled and PortForwardingContainer is not 
used.
+        // Get the actual IP address of this container so other containers can 
reach it.
+        if (System.getenv('CI')) {
+            try {
+                // Execute hostname -I to get the container's IP address
+                def process = 'hostname -I'.execute()
+                process.waitFor()
+                def ip = process.text.trim().split(/\s+/)[0]
+                if (ip && ip != '127.0.0.1') {
+                    return ip
+                }
+            } catch (Exception e) {
+                log.warn('Failed to get container IP via hostname -I', e)
+            }
+            // Fallback to localhost
+            return '127.0.0.1'
+        }
+
         try {
             PortForwardingContainer.getDeclaredMethod('getNetwork').with {
                 accessible = true

Reply via email to