testcontainers-java icon indicating copy to clipboard operation
testcontainers-java copied to clipboard

[Bug]: Can't overwrite Docker socket path with 2.0.2 / Podman stopped working

Open der-eismann opened this issue 2 weeks ago • 3 comments

Module

PostgreSQL

Testcontainers version

2.0.2

Using the latest Testcontainers version?

Yes

Host OS

Linux, Fedora 43

Host Arch

x86

Docker version

podman version
Client:        Podman Engine
Version:       5.7.0
API Version:   5.7.0
Go Version:    go1.25.4 X:nodwarf5
Git Commit:    0370128fc8dcae93533334324ef838db8f8da8cb
Built:         Tue Nov 11 01:00:00 2025
Build Origin:  Fedora Project
OS/Arch:       linux/amd64

What happened?

Sorry if this is a duplicate, I wasn't able to find this issue.

I've been using Podman without any issues with the 1.x release series for years now following instructions like these. However it seems these environment variables are not respected anymore, because after upgrading some of our projects to Spring Boot 4 (which includes tc 2.0) I can't run integration tests anymore. Even after setting the following environment variables it still fails with the same message looking for /var/run/docker.sock, so something seems to be off:

DOCKER_HOST=unix:///run/user/1000/podman/podman.sock
TESTCONTAINERS_RYUK_DISABLED=true
TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=unix:///run/user/1000/podman/podman.sock

Relevant log output

13:53:24.585 [main] INFO  org.testcontainers.images.PullPolicy - Image pull policy will be performed by: DefaultPullPolicy()
13:53:24.589 [main] INFO  org.testcontainers.utility.ImageNameSubstitutor - Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
13:53:24.609 [main] INFO  org.testcontainers.DockerClientFactory - Testcontainers version: 2.0.2
13:53:25.218 [main] INFO  org.testcontainers.dockerclient.DockerMachineClientProviderStrategy - docker-machine executable was not found on PATH ([/usr/bin, /home/user/.jenv/libexec, /home/user/.sdkman/candidates/java/current/bin, /home/user/.jenv/shims, /home/user/.local/bin, /home/user/bin, /usr/local/bin, /usr/bin, /bin, /usr/local/sbin, /usr/sbin, /sbin, /var/lib/snapd/snap/bin, /home/user/go/bin, /home/user/.jenv/bin, /home/user/.npm-global/bin, /opt/go/bin])
13:53:25.220 [main] ERROR org.testcontainers.dockerclient.DockerClientProviderStrategy - Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
        UnixSocketClientProviderStrategy: failed with exception InvalidConfigurationException (Could not find unix domain socket). Root cause NoSuchFileException (/var/run/docker.sock)
        DockerDesktopClientProviderStrategy: failed with exception NullPointerException (Cannot invoke "java.nio.file.Path.toString()" because the return value of "org.testcontainers.dockerclient.DockerDesktopClientProviderStrategy.getSocketPath()" is null)As no valid configuration was found, execution cannot continue.
See https://java.testcontainers.org/on_failure.html for more details.

Additional Information

The only "config" we use is this line in the application-testing.yaml:

spring:
    datasource:
        url: jdbc:tc:postgresql:17-alpine://hostname/database

der-eismann avatar Dec 01 '25 13:12 der-eismann

  • I glanced at the contents of https://github.com/testcontainers/testcontainers-java/pull/11255 , which could even explain the bug in https://github.com/testcontainers/testcontainers-java/issues/10381 ?

linghengqian avatar Dec 07 '25 14:12 linghengqian

I think it is happening also for me on MacOS with Docker Desktop

mpolonio avatar Dec 09 '25 09:12 mpolonio

I would like to know when we broke this. Version 2.x doesn't have changes related to this, it has been more related to dependencies and JUnit 4 drop support.

eddumelendez avatar Dec 10 '25 15:12 eddumelendez

Hi @eddumelendez I do not know but I think in our case the situation arised because we have automatic updates enabled on Docker Desktop and they should have updated the Docker server version to one in which included some change in the way to request for the docker Unix socket path.... or at least that is what some people were commenting

mpolonio avatar Dec 12 '25 08:12 mpolonio

  • Based on the commit history, I personally believe this bug has existed since the testcontainers were created.

linghengqian avatar Dec 12 '25 08:12 linghengqian