testcontainers / testcontainers-java

Testcontainers is a Java library that supports JUnit tests, providing lightweight, throwaway instances of common databases, Selenium web browsers, or anything else that can run in a Docker container.
https://testcontainers.org
MIT License
7.96k stars 1.64k forks source link

Unix domain sockets are not supported on Windows #4673

Open rfogel opened 2 years ago

rfogel commented 2 years ago

Hello.

I'm trying to connect my testcontainer project to a remote docker server but it fails on start with the following message:

2021-11-10 11:52:36.601 [main] ERROR - ping failed with configuration Environment variables, system properties and defaults. Resolved dockerHost=unix:///var/run/docker.sock due to org.rnorth.ducttape.TimeoutException: Timeout waiting for result with exception
org.rnorth.ducttape.TimeoutException: Timeout waiting for result with exception
    at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:51)
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.ping(DockerClientProviderStrategy.java:182)
    at org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy.test(EnvironmentAndSystemPropertyClientProviderStrategy.java:41)
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$getFirstValidStrategy$2(DockerClientProviderStrategy.java:118)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:302)
    at java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:728)
    at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
    at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.findAny(ReferencePipeline.java:469)
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.getFirstValidStrategy(DockerClientProviderStrategy.java:154)
    at org.testcontainers.DockerClientFactory.getOrInitializeStrategy(DockerClientFactory.java:126)
    at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:147)
    at org.testcontainers.images.builder.ImageFromDockerfile.resolve(ImageFromDockerfile.java:84)
    at org.testcontainers.images.builder.ImageFromDockerfile.resolve(ImageFromDockerfile.java:37)
    at org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20)
    at org.testcontainers.utility.LazyFuture.get(LazyFuture.java:27)
    at org.testcontainers.shaded.com.google.common.util.concurrent.Futures$3.get(Futures.java:1332)
    at org.testcontainers.images.RemoteDockerImage.getImageName(RemoteDockerImage.java:97)
    at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:56)
    at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:26)
    at org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20)
    at org.testcontainers.utility.LazyFuture.get(LazyFuture.java:27)
    at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1277)
    at org.testcontainers.containers.GenericContainer.logger(GenericContainer.java:613)
    at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:320)
    at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:311)
    at com.santander.integritycheck.contracts.core.integrationtests.scenario.BaseScenario.<clinit>(BaseScenario.java:26)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.santander.integritycheck.contracts.core.integrationtests.plugin.CucumberEventHandlerPlugin.<init>(CucumberEventHandlerPlugin.java:20)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at io.cucumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:116)
    at io.cucumber.core.plugin.PluginFactory.instantiate(PluginFactory.java:99)
    at io.cucumber.core.plugin.PluginFactory.create(PluginFactory.java:63)
    at io.cucumber.core.plugin.Plugins.createPlugins(Plugins.java:32)
    at io.cucumber.core.plugin.Plugins.<init>(Plugins.java:25)
    at io.cucumber.junit.Cucumber.<init>(Cucumber.java:162)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
    at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:63)
Caused by: java.lang.RuntimeException: java.io.IOException: Unix domain sockets are not supported on Windows
    at com.github.dockerjava.okhttp.UnixSocketFactory.createSocket(UnixSocketFactory.java:65)
    at org.testcontainers.shaded.okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:257)
    at org.testcontainers.shaded.okhttp3.internal.connection.RealConnection.connect(RealConnection.java:183)
    at org.testcontainers.shaded.okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)
    at org.testcontainers.shaded.okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
    at org.testcontainers.shaded.okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)
    at org.testcontainers.shaded.okhttp3.internal.connection.Transmitter.newExchange(Transmitter.java:169)
    at org.testcontainers.shaded.okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
    at org.testcontainers.shaded.okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
    at org.testcontainers.shaded.okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at org.testcontainers.shaded.okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
    at org.testcontainers.shaded.okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)
    at org.testcontainers.shaded.okhttp3.RealCall.execute(RealCall.java:81)
    at com.github.dockerjava.okhttp.OkHttpInvocationBuilder.execute(OkHttpInvocationBuilder.java:276)
    at com.github.dockerjava.okhttp.OkHttpInvocationBuilder.execute(OkHttpInvocationBuilder.java:271)
    at com.github.dockerjava.okhttp.OkHttpInvocationBuilder.get(OkHttpInvocationBuilder.java:239)
    at com.github.dockerjava.core.exec.PingCmdExec.execute(PingCmdExec.java:26)
    at com.github.dockerjava.core.exec.PingCmdExec.execute(PingCmdExec.java:12)
    at com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:21)
    at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35)
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$null$4(DockerClientProviderStrategy.java:185)
    at org.rnorth.ducttape.ratelimits.RateLimiter.getWhenReady(RateLimiter.java:51)
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$ping$5(DockerClientProviderStrategy.java:183)
    at org.rnorth.ducttape.unreliables.Unreliables.lambda$retryUntilSuccess$0(Unreliables.java:41)
    at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
    at java.util.concurrent.FutureTask.run(FutureTask.java)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Unix domain sockets are not supported on Windows
    at com.github.dockerjava.okhttp.UnixDomainSocket.<init>(UnixDomainSocket.java:93)
    at com.github.dockerjava.okhttp.UnixSocketFactory$1.<init>(UnixSocketFactory.java:24)
    at com.github.dockerjava.okhttp.UnixSocketFactory.createSocket(UnixSocketFactory.java:24)
    ... 35 common frames omitted
2021-11-10 11:52:51.647 [main] ERROR - Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
2021-11-10 11:52:51.647 [main] ERROR -     EnvironmentAndSystemPropertyClientProviderStrategy: failed with exception InvalidConfigurationException (ping failed)
2021-11-10 11:52:51.647 [main] ERROR -     NpipeSocketClientProviderStrategy: failed with exception InvalidConfigurationException (ping failed). Root cause TimeoutException (null)
2021-11-10 11:52:51.647 [main] ERROR -     WindowsClientProviderStrategy: failed with exception TimeoutException (Timeout waiting for result with exception). Root cause ConnectException (Connection refused: connect)
2021-11-10 11:52:51.647 [main] ERROR - As no valid configuration was found, execution cannot continue

My local machine is windows and the docker server is linux. Can you point out a solution to this problem?

Thanks in advanced.

kiview commented 2 years ago

This Unix socket path as read from DOCKER_HOST is a path to a local Unix socket, isn't it? How did you expose the socket over network?

rfogel commented 2 years ago

Hi kiview.

Sorry my ignorance but I don't think I understand your question. Let me give you some more information.

my .testcontainers.properties: docker.client.strategy=org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy docker.host=tcp://ec2-XXX-XXX-XXX:2375

On the server side we have a ec2 instance with docker running a "jarkt/docker-remote-api" image exposed on 2375. We can successfully use docker remotely using docker cli.

If these info aren't enough I can pursuit a more specific network information.

Thanks.

kiview commented 2 years ago

Oh, that URL of course makes sense, I just saw this log and got confused: Resolved dockerHost=unix:///var/run/docker.sock

Can you share Testcontainers DEBUG logs, please? https://www.testcontainers.org/supported_docker_environment/logging_config/

rfogel commented 2 years ago
2021-11-10 16:53:02.089 [main] DEBUG - Returning Dockerfile:
FROM hyness/spring-cloud-config-server
COPY ["/config/application-local.yml","/config/application-local.yml"]

2021-11-10 16:53:02.142 [main] DEBUG - Testcontainers configuration overrides will be loaded from file:/C:/Users/i052367/.testcontainers.properties
2021-11-10 16:53:02.230 [main] INFO  - Loaded org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy from ~/.testcontainers.properties, will try it first
2021-11-10 16:53:03.460 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:04.106 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:04.608 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:05.111 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:05.614 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:06.128 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:06.630 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:07.144 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:07.647 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:08.151 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:08.652 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:09.154 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:09.669 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:10.182 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:10.697 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:11.198 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:11.713 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:12.214 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:12.727 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:13.228 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:13.470 [main] ERROR - ping failed with configuration Environment variables, system properties and defaults. Resolved dockerHost=unix:///var/run/docker.sock due to org.rnorth.ducttape.TimeoutException: Timeout waiting for result with exception
org.rnorth.ducttape.TimeoutException: Timeout waiting for result with exception
    at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:51)
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.ping(DockerClientProviderStrategy.java:182)
    at org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy.test(EnvironmentAndSystemPropertyClientProviderStrategy.java:41)
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$getFirstValidStrategy$2(DockerClientProviderStrategy.java:118)
    at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:267)
    at java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:302)
    at java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:728)
    at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:499)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:486)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
    at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.util.stream.ReferencePipeline.findAny(ReferencePipeline.java:469)
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.getFirstValidStrategy(DockerClientProviderStrategy.java:154)
    at org.testcontainers.DockerClientFactory.getOrInitializeStrategy(DockerClientFactory.java:126)
    at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:147)
    at org.testcontainers.images.builder.ImageFromDockerfile.resolve(ImageFromDockerfile.java:84)
    at org.testcontainers.images.builder.ImageFromDockerfile.resolve(ImageFromDockerfile.java:37)
    at org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20)
    at org.testcontainers.utility.LazyFuture.get(LazyFuture.java:27)
    at org.testcontainers.shaded.com.google.common.util.concurrent.Futures$3.get(Futures.java:1332)
    at org.testcontainers.images.RemoteDockerImage.getImageName(RemoteDockerImage.java:97)
    at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:56)
    at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:26)
    at org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20)
    at org.testcontainers.utility.LazyFuture.get(LazyFuture.java:27)
    at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1277)
    at org.testcontainers.containers.GenericContainer.logger(GenericContainer.java:613)
    at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:320)
    at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:311)
    at com.santander.integritycheck.contracts.core.integrationtests.scenario.BaseScenario.<clinit>(BaseScenario.java:26)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.santander.integritycheck.contracts.core.integrationtests.plugin.CucumberEventHandlerPlugin.<init>(CucumberEventHandlerPlugin.java:20)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at io.cucumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:116)
    at io.cucumber.core.plugin.PluginFactory.instantiate(PluginFactory.java:99)
    at io.cucumber.core.plugin.PluginFactory.create(PluginFactory.java:63)
    at io.cucumber.core.plugin.Plugins.createPlugins(Plugins.java:32)
    at io.cucumber.core.plugin.Plugins.<init>(Plugins.java:25)
    at io.cucumber.junit.Cucumber.<init>(Cucumber.java:162)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
    at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
    at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:63)
Caused by: java.lang.RuntimeException: java.io.IOException: Unix domain sockets are not supported on Windows
    at com.github.dockerjava.okhttp.UnixSocketFactory.createSocket(UnixSocketFactory.java:65)
    at org.testcontainers.shaded.okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:257)
    at org.testcontainers.shaded.okhttp3.internal.connection.RealConnection.connect(RealConnection.java:183)
    at org.testcontainers.shaded.okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)
    at org.testcontainers.shaded.okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
    at org.testcontainers.shaded.okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)
    at org.testcontainers.shaded.okhttp3.internal.connection.Transmitter.newExchange(Transmitter.java:169)
    at org.testcontainers.shaded.okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
    at org.testcontainers.shaded.okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
    at org.testcontainers.shaded.okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at org.testcontainers.shaded.okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
    at org.testcontainers.shaded.okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
    at org.testcontainers.shaded.okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)
    at org.testcontainers.shaded.okhttp3.RealCall.execute(RealCall.java:81)
    at com.github.dockerjava.okhttp.OkHttpInvocationBuilder.execute(OkHttpInvocationBuilder.java:276)
    at com.github.dockerjava.okhttp.OkHttpInvocationBuilder.execute(OkHttpInvocationBuilder.java:271)
    at com.github.dockerjava.okhttp.OkHttpInvocationBuilder.get(OkHttpInvocationBuilder.java:239)
    at com.github.dockerjava.core.exec.PingCmdExec.execute(PingCmdExec.java:26)
    at com.github.dockerjava.core.exec.PingCmdExec.execute(PingCmdExec.java:12)
    at com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:21)
    at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35)
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$null$4(DockerClientProviderStrategy.java:185)
    at org.rnorth.ducttape.ratelimits.RateLimiter.getWhenReady(RateLimiter.java:51)
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$ping$5(DockerClientProviderStrategy.java:183)
    at org.rnorth.ducttape.unreliables.Unreliables.lambda$retryUntilSuccess$0(Unreliables.java:41)
    at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
    at java.util.concurrent.FutureTask.run(FutureTask.java)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Unix domain sockets are not supported on Windows
    at com.github.dockerjava.okhttp.UnixDomainSocket.<init>(UnixDomainSocket.java:93)
    at com.github.dockerjava.okhttp.UnixSocketFactory$1.<init>(UnixSocketFactory.java:24)
    at com.github.dockerjava.okhttp.UnixSocketFactory.createSocket(UnixSocketFactory.java:24)
    ... 35 common frames omitted
2021-11-10 16:53:13.473 [main] DEBUG - EnvironmentAndSystemPropertyClientProviderStrategy: failed with exception InvalidConfigurationException (ping failed)
2021-11-10 16:53:13.730 [pool-1-thread-2] DEBUG - Pinging docker daemon...
2021-11-10 16:53:13.743 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:14.251 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:14.758 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:15.262 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:15.766 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:16.274 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:16.781 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:17.288 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:17.793 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:18.299 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:18.804 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:19.311 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:19.818 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:20.324 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:20.835 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:21.338 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:21.847 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:22.353 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:22.863 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:23.371 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:23.499 [main] DEBUG - NpipeSocketClientProviderStrategy: failed with exception InvalidConfigurationException (ping failed). Root cause TimeoutException (null)
2021-11-10 16:53:23.871 [pool-1-thread-3] DEBUG - Pinging docker daemon...
2021-11-10 16:53:23.879 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:24.234 [pool-1-thread-2] DEBUG - Pinging docker daemon...
2021-11-10 16:53:24.384 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:24.890 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:25.398 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:25.899 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:26.404 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:26.910 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:27.412 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:27.921 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:28.430 [pool-1-thread-1] DEBUG - Pinging docker daemon...
2021-11-10 16:53:28.462 [pool-1-thread-3] DEBUG - Pinging docker daemon...
2021-11-10 16:53:28.510 [main] DEBUG - WindowsClientProviderStrategy: failed with exception TimeoutException (Timeout waiting for result with exception). Root cause ConnectException (Connection refused: connect)
2021-11-10 16:53:28.511 [main] ERROR - Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
2021-11-10 16:53:28.512 [main] ERROR -     EnvironmentAndSystemPropertyClientProviderStrategy: failed with exception InvalidConfigurationException (ping failed)
2021-11-10 16:53:28.512 [main] ERROR -     NpipeSocketClientProviderStrategy: failed with exception InvalidConfigurationException (ping failed). Root cause TimeoutException (null)
2021-11-10 16:53:28.512 [main] ERROR -     WindowsClientProviderStrategy: failed with exception TimeoutException (Timeout waiting for result with exception). Root cause ConnectException (Connection refused: connect)
2021-11-10 16:53:28.512 [main] ERROR - As no valid configuration was found, execution cannot continue
rfogel commented 2 years ago

Hello @kiview. Did you have the oportunity to check the logs?

kiview commented 2 years ago

Which version of Testcontainers are you using? And are you running inside a docker build? (wondering about these lines:

2021-11-10 16:53:02.089 [main] DEBUG - Returning Dockerfile:
FROM hyness/spring-cloud-config-server
COPY ["/config/application-local.yml","/config/application-local.yml"]
rfogel commented 2 years ago

I'm using

`

org.testcontainers
<artifactId>testcontainers</artifactId>
<version>1.14.3</version>

`

The first thing my test class do is raise a spring-config-server (using testContainer) and it copies my local config files to it. I'm using "hyness/spring-cloud-config-server" image

kiview commented 2 years ago

Please upgrade to the latest version 1.16.2 and see, if this already solves your issue.