[Bug--Fix]: Error starting container when using DIND in Kubernetes pod #11139 #11213
+37
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I updated container-environment detection so we correctly recognize Kubernetes/DIND pods and compute a reachable Docker host IP for unix-socket setups, avoiding “localhost” when inappropriate. This makes Ryuk and published container ports reachable from your test container in K8s+DIND without requiring manual TESTCONTAINERS_HOST_OVERRIDE.
Key change:
In core/src/main/java/org/testcontainers/dockerclient/DockerClientConfigUtils.java, IN_A_CONTAINER now detects containers using multiple heuristics: /.dockerenv, /run/.containerenv, KUBERNETES_SERVICE_HOST, and cgroup hints (“docker”, “kubepods”, “containerd”, “podman”). When true and DOCKER_HOST is a unix socket, Testcontainers will use the Docker bridge gateway instead of localhost, which fits DIND-in-pod networking.