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
8.05k stars 1.66k forks source link

Question: Should containers/networks be pruned after failed tests? #739

Open bthalmayr opened 6 years ago

bthalmayr commented 6 years ago

Hi all, appologies if this is a totally stupid question. I just started to work on a project that uses testcontainers for integration testing. Unfortunately on my Mac the tests all fail, whereas they succeed for other. In my case the fail because of

 11:32:45.603 [Test worker] ERROR ?? [alpine/socat:latest] - Could not start container
org.testcontainers.containers.ContainerLaunchException: Aborting attempt to link to container SOME_CONTAINER as it is not running

When I use 'docker-machine ls' , 'docker container ls' and 'docker network ls' after the failed test, the docker machine is still running, as well as the containers are.

I wonder if the containers and network should have been stopped and pruned after the failed test. They seem to be stopped and pruned if the test succeed.

Software used: testcontainers: 1.7.1 Docker vor Mac: 18.03.1-ce-mac65 Docker compose: 1.21.1 Docker machine: 0.14.0 Virtual Box: 5.1.2

I already queried the docs/how to, but I could not really find a hint. Thanks for any pointers!

kiview commented 6 years ago

Hey @bthalmayr, the containers and networks should be deleted after the tests and since Testcontainers 1.6 in a very reliable fashion.

I don't know how stable our Docker-Machine support is ATM, can you test your setup with Docker for Mac directly? This is very well supported.

Or are you actually using Docker Toolbox instead of Docker for Mac?

bthalmayr commented 6 years ago

Thanks for your quick reply @kiview, much appreciated.

Actually deleted Docker Toolbox as documented in https://docs.docker.com/toolbox/toolbox_install_mac/#how-to-uninstall-toolbox and I thought I'm only using Docker for Mac now.

I also deleted the default machine, but then I get

Caused by: java.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configuration
    at org.testcontainers.dockerclient.DockerClientProviderStrategy.lambda$getFirstValidStrategy$3(DockerClientProviderStrategy.java:155

when running the test.

Enhancing logging then showed me

[Test worker] DEBUG org.testcontainers.utility.TestcontainersConfiguration - Testcontainers configuration overrides loaded from TestcontainersConfiguration(properties={compose.container.image=docker/compose:1.18.0})
[Test worker] DEBUG org.testcontainers.dockerclient.DockerClientProviderStrategy - ProxiedUnixSocketClientProviderStrategy: failed with exception NoClassDefFoundError (org/rnorth/tcpunixsocketproxy/TcpToUnixSocketProxy). Root cause ClassNotFoundException (org.rnorth.tcpunixsocketproxy.TcpToUnixSocketProxy)
[Test worker] DEBUG org.testcontainers.utility.CommandLine - Executing shell command: `docker-machine ls -q`

and reading the Docker for Mac docs told me

if you are using Docker for Mac

Docker for Mac uses HyperKit, a lightweight macOS virtualization solution built on top of the Hypervisor.framework.

Currently, there is no docker-machine create driver for HyperKit, so use the virtualbox driver to >create local machines. "

so I thought Virtual box and 'docker-machine' is needed.

The test uses DockerComposeContainer; is this meant to use 'docker-machine'?

I'm really sorry for my insufficient knowledge, I'm trying to get up to speed as fast as possible.

kiview commented 6 years ago

Hey @bthalmayr,

You can use Docker for Mac without Docker-Machine and Virtualbox, it's totally fine. DockerComposeContainer doesn't use Docker-Machine per default, Testcontainers actually tries to detect the Docker environment by itself. In your case, Testcontainers detected Docker-Machine as it's environment, which isn't really what you want, you would want to use Docker for Mac directly I assume.

I'm sure @bsideup can give you a hint about how to cleanup your installation to correctly use Docker for Mac (I'm no Mac user).

Can you also please update to Testcontainers 1.7.3, just to be sure?

bthalmayr commented 6 years ago

This is quite intersting @kiview , thanks for pointing this out.

After removing Docker Toolbox no 'docker-machine' command was available in the shell, but after I installed Docker for Mac

/usr/local/bin/docker-machine

was created. In fact this is a symbolic link to a binary installed by Docker for Mac app.

lrwxr-xr-x  1 USERID  staff  62 Jun  7 15:31 /usr/local/bin/docker-machine -> /Applications/Docker.app/Contents/Resources/bin/docker-machine

so I try to remove the link, so that DockerComposeContainer will not be able to detect it.

It seems that DockerComposeContainer first choice is to use docker-machine.

bthalmayr commented 6 years ago

too bad, when I remove the symbolic link, then no Docker environmenment can be determined at all

[Test worker] DEBUG org.testcontainers.utility.TestcontainersConfiguration - Testcontainers configuration overrides loaded from TestcontainersConfiguration(properties={compose.container.image=docker/compose:1.18.0})
[Test worker] DEBUG org.testcontainers.dockerclient.DockerClientProviderStrategy - ProxiedUnixSocketClientProviderStrategy: failed with exception NoClassDefFoundError (org/rnorth/tcpunixsocketproxy/TcpToUnixSocketProxy). Root cause ClassNotFoundException (org.rnorth.tcpunixsocketproxy.TcpToUnixSocketProxy)
[Test worker] ERROR org.testcontainers.dockerclient.DockerClientProviderStrategy - Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
[Test worker] ERROR org.testcontainers.dockerclient.DockerClientProviderStrategy -     ProxiedUnixSocketClientProviderStrategy: failed with exception NoClassDefFoundError (org/rnorth/tcpunixsocketproxy/TcpToUnixSocketProxy). Root cause ClassNotFoundException (org.rnorth.tcpunixsocketproxy.TcpToUnixSocketProxy)
[Test worker] ERROR org.testcontainers.dockerclient.DockerClientProviderStrategy - As no valid configuration was found, execution cannot continue

but even 'trace' level logging does not reveal more info.

bsideup commented 6 years ago

@bthalmayr the error you get (NoClassDefFoundError (org/rnorth/tcpunixsocketproxy/TcpToUnixSocketProxy)) looks like #693 and was fixed in 1.7.3 release, please update

kiview commented 6 years ago

Don't delete the symbolic link, it's okay to have Docker-Machine installed as part of Docker for Mac and should not be related to your problem.

Also what @bsideup said, I mentioned the update in my previous comment :wink:

bthalmayr commented 6 years ago

Thanks @bsideup , @kiview

The strange thing is that the other co-workers have the same config (Docker for Mac) and there it's working fine, so I did not think updating testcontainer to version 1.7.3 would solve it.

To make sure it's not related to the integrationTest of the project, I created a simple test based on the description from https://www.testcontainers.org/usage/docker_compose.html

Unfortunately I was getting the same error.

After upgrading testcontainer version to 1.7.3 the simple test succeeded.

I really wonder what's the difference in our team's setup.

bsideup commented 6 years ago

@bthalmayr you have Mac OS X 10.11 while your co-workers have 10.12+? :)

bthalmayr commented 6 years ago

I'll check this @bsideup

Thanks a lot for your quick help!

rnorth commented 4 years ago

Is this still an issue? Improvements to docker compose cleanup were introduced in #1847 - release notes here: https://github.com/testcontainers/testcontainers-java/releases/tag/1.12.4

solidpulse commented 4 years ago

@rnorth Yes, this is still an issue on Mac. Java 13/latest testcontainers/gradle 6. Works after manual network prune from terminal after each test run.

Log here if it is of any help

14:31:06.815 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
14:31:06.834 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)]
14:31:06.857 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [com.company.tracker.service.ConfigurationWriterTest] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper]
14:31:06.873 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.company.tracker.service.ConfigurationWriterTest], using SpringBootContextLoader
14:31:06.877 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [com.company.tracker.service.ConfigurationWriterTest]: class path resource [com/company/tracker/service/ConfigurationWriterTest-context.xml] does not exist
14:31:06.877 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [com.company.tracker.service.ConfigurationWriterTest]: class path resource [com/company/tracker/service/ConfigurationWriterTestContext.groovy] does not exist
14:31:06.877 [Test worker] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [com.company.tracker.service.ConfigurationWriterTest]: no resource found for suffixes {-context.xml, Context.groovy}.
14:31:06.879 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [com.company.tracker.service.ConfigurationWriterTest]: ConfigurationWriterTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
14:31:06.916 [Test worker] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [com.company.tracker.service.ConfigurationWriterTest]
14:31:06.997 [Test worker] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [/Users/avi/Documents/tracker/build/classes/java/main/com/company/tracker/TrackerApplication.class]
14:31:06.998 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration com.company.tracker.TrackerApplication for test class com.company.tracker.service.ConfigurationWriterTest
14:31:07.099 [Test worker] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [com.company.tracker.service.ConfigurationWriterTest]: using defaults.
14:31:07.100 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener]
14:31:07.107 [Test worker] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Skipping candidate TestExecutionListener [org.springframework.test.context.web.ServletTestExecutionListener] due to a missing dependency. Specify custom listener classes or make the default listener classes and their required dependencies available. Offending class: [javax/servlet/ServletContext]
14:31:07.114 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@39b0b2a6, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@5df21c6, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@209ee766, org.springframework.test.context.support.DirtiesContextTestExecutionListener@2fcb2f58, org.springframework.test.context.transaction.TransactionalTestExecutionListener@13d28d85, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@6f7f4f28, org.springframework.test.context.event.EventPublishingTestExecutionListener@380d3076, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@4eca79c0, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@49f37b39, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@5c607b20, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@d3f6e5a, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@10a61244]
14:31:07.117 [Test worker] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@260aea3e testClass = ConfigurationWriterTest, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [ReactiveWebMergedContextConfiguration@4d5b5152 testClass = ConfigurationWriterTest, locations = '{}', classes = '{class com.company.tracker.TrackerApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true, server.port=0}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@4b2846e5, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@37c92a8e, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@7ad158a3, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@d7548c1, org.springframework.boot.test.web.reactive.server.WebTestClientContextCustomizer@3d47a8bf], contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> false]], class annotated with @DirtiesContext [false] with mode [null].
14:31:07.133 [Test worker] DEBUG org.testcontainers.utility.TestcontainersConfiguration - Testcontainers configuration overrides will be loaded from file:/Users/avi/.testcontainers.properties
14:31:07.203 [Test worker] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy - Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
14:31:07.343 [ducttape-0] DEBUG org.testcontainers.dockerclient.DockerClientProviderStrategy - Pinging docker daemon...
14:31:07.448 [ducttape-0] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: org.testcontainers.dockerclient.transport.okhttp.OkHttpDockerCmdExecFactory$1@762c922b
14:31:07.535 [Test worker] INFO org.testcontainers.dockerclient.UnixSocketClientProviderStrategy - Accessing docker with local Unix socket
14:31:07.535 [Test worker] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy - Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
14:31:07.535 [Test worker] DEBUG org.testcontainers.dockerclient.DockerClientProviderStrategy - Checking Docker OS type for local Unix socket (unix:///var/run/docker.sock)
14:31:07.536 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: com.github.dockerjava.core.exec.InfoCmdExec@67ce5922
14:31:07.658 [Test worker] INFO org.testcontainers.DockerClientFactory - Docker host IP address is localhost
14:31:07.659 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: com.github.dockerjava.core.exec.InfoCmdExec@8f37432
14:31:07.676 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: com.github.dockerjava.core.exec.VersionCmdExec@7178508a
14:31:07.693 [Test worker] INFO org.testcontainers.DockerClientFactory - Connected to docker: 
  Server Version: 19.03.5
  API Version: 1.40
  Operating System: Docker Desktop
  Total Memory: 1998 MB
14:31:07.695 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: ListImagesCmdImpl[imageNameFilter=quay.io/testcontainers/ryuk:0.2.3,showAll=false,filters=com.github.dockerjava.core.util.FiltersBuilder@0,execution=com.github.dockerjava.core.exec.ListImagesCmdExec@1505dd4f]
14:31:07.726 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - Looking up auth config for image: quay.io/testcontainers/ryuk:0.2.3
14:31:07.727 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - RegistryAuthLocator has configFile: /Users/avi/.docker/config.json (exists) and commandPathPrefix: 
14:31:07.730 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - registryName [quay.io] for dockerImageName [quay.io/testcontainers/ryuk:0.2.3]
14:31:07.730 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - Executing docker credential provider: docker-credential-desktop to locate auth config for: quay.io
14:31:07.736 [Test worker] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.ProcessExecutor - Executing [docker-credential-desktop, get].
14:31:07.744 [Test worker] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.ProcessExecutor - Started Process[pid=4342, exitValue="not exited"]
14:31:07.841 [WaitForProcess-Process[pid=4342, exitValue="not exited"]] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.WaitForProcess - Process[pid=4342, exitValue=1] stopped with exit code 1
14:31:07.843 [Test worker] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.ProcessExecutor - Executing [docker-credential-desktop, get].
14:31:07.846 [Test worker] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.ProcessExecutor - Started Process[pid=4344, exitValue="not exited"]
14:31:07.887 [WaitForProcess-Process[pid=4344, exitValue="not exited"]] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.WaitForProcess - Process[pid=4344, exitValue=1] stopped with exit code 1
14:31:07.888 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - Got credentials not found error message from docker credential helper - credentials not found in native keychain
14:31:07.888 [Test worker] INFO org.testcontainers.utility.RegistryAuthLocator - Credential helper/store (docker-credential-desktop) does not have credentials for quay.io
14:31:07.888 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - no matching Auth Configs - falling back to defaultAuthConfig [null]
14:31:07.888 [Test worker] DEBUG org.testcontainers.dockerclient.auth.AuthDelegatingDockerClientConfig - Effective auth config [null]
14:31:07.903 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: com.github.dockerjava.core.command.CreateContainerCmdImpl@515643a3[name=testcontainers-ryuk-fd57b56e-3e82-4bcc-83fe-ef0638ecc4bb,hostName=<null>,domainName=<null>,user=<null>,attachStdin=<null>,attachStdout=<null>,attachStderr=<null>,portSpecs=<null>,tty=<null>,stdinOpen=<null>,stdInOnce=<null>,env=<null>,cmd=<null>,healthcheck=<null>,argsEscaped=<null>,entrypoint=<null>,image=quay.io/testcontainers/ryuk:0.2.3,volumes=com.github.dockerjava.api.model.Volumes@698aa6e,workingDir=<null>,macAddress=<null>,onBuild=<null>,networkDisabled=<null>,exposedPorts=com.github.dockerjava.api.model.ExposedPorts@5809c99,stopSignal=<null>,stopTimeout=<null>,hostConfig=com.github.dockerjava.api.model.HostConfig@2528ce04[binds=com.github.dockerjava.api.model.Binds@7f5a1e20,blkioWeight=<null>,blkioWeightDevice=<null>,blkioDeviceReadBps=<null>,blkioDeviceWriteBps=<null>,blkioDeviceReadIOps=<null>,blkioDeviceWriteIOps=<null>,memorySwappiness=<null>,nanoCPUs=<null>,capAdd=<null>,capDrop=<null>,containerIDFile=<null>,cpuPeriod=<null>,cpuRealtimePeriod=<null>,cpuRealtimeRuntime=<null>,cpuShares=<null>,cpuQuota=<null>,cpusetCpus=<null>,cpusetMems=<null>,devices=<null>,deviceCgroupRules=<null>,diskQuota=<null>,dns=<null>,dnsOptions=<null>,dnsSearch=<null>,extraHosts=<null>,groupAdd=<null>,ipcMode=<null>,cgroup=<null>,links=<null>,logConfig=<null>,lxcConf=<null>,memory=<null>,memorySwap=<null>,memoryReservation=<null>,kernelMemory=<null>,networkMode=<null>,oomKillDisable=<null>,init=<null>,autoRemove=true,oomScoreAdj=<null>,portBindings=<null>,privileged=false,publishAllPorts=true,readonlyRootfs=<null>,restartPolicy=<null>,ulimits=<null>,cpuCount=<null>,cpuPercent=<null>,ioMaximumIOps=<null>,ioMaximumBandwidth=<null>,volumesFrom=<null>,mounts=<null>,pidMode=<null>,isolation=<null>,securityOpts=<null>,storageOpt=<null>,cgroupParent=<null>,volumeDriver=<null>,shmSize=<null>,pidsLimit=<null>,runtime=<null>,tmpFs=<null>,utSMode=<null>,usernsMode=<null>,sysctls=<null>,consoleSize=<null>],labels={org.testcontainers=true},shell=<null>,networkingConfig=<null>,ipv4Address=<null>,ipv6Address=<null>,aliases=<null>,authConfig=<null>,execution=com.github.dockerjava.core.exec.CreateContainerCmdExec@1e775638]
14:31:08.090 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: 488e3675c1c7bb88f824ddae5ac7ce0a063d7834a06b7132c1a99012206f07ad,com.github.dockerjava.core.exec.StartContainerCmdExec@43987f8c
14:31:08.782 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: 488e3675c1c7bb88f824ddae5ac7ce0a063d7834a06b7132c1a99012206f07ad,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@476a06ba
14:31:08.782 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/488e3675c1c7bb88f824ddae5ac7ce0a063d7834a06b7132c1a99012206f07ad/json], queryParams={})
14:31:08.840 [testcontainers-ryuk] DEBUG org.testcontainers.utility.ResourceReaper - Sending 'label=org.testcontainers%3Dtrue&label=org.testcontainers.sessionId%3Dfd57b56e-3e82-4bcc-83fe-ef0638ecc4bb' to Ryuk
14:31:08.842 [testcontainers-ryuk] DEBUG org.testcontainers.utility.ResourceReaper - Received 'ACK' from Ryuk
14:31:08.842 [Test worker] INFO org.testcontainers.DockerClientFactory - Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
        ℹ︎ Checking the system...
        ✔ Docker version should be at least 1.6.0
14:31:08.849 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: 488e3675c1c7bb88f824ddae5ac7ce0a063d7834a06b7132c1a99012206f07ad,<null>,true,<null>,<null>,<null>,<null>,{df,-P},<null>,<null>,com.github.dockerjava.core.exec.ExecCreateCmdExec@2d44b551
14:31:09.004 [tc-okhttp-stream-1126029105] DEBUG com.github.dockerjava.core.command.ExecStartResultCallback - STDOUT: Filesystem           1024-blocks    Used Available Capacity Mounted on
14:31:09.005 [tc-okhttp-stream-1126029105] DEBUG com.github.dockerjava.core.command.ExecStartResultCallback - STDOUT: overlay               61255492   2137656  55976512   4% /
tmpfs                    65536         0     65536   0% /dev
tmpfs                  1023132         0   1023132   0% /sys/fs/cgroup
shm                      65536         0     65536   0% /dev/shm
/dev/sda1             61255492   2137656  55976512   4% /etc/resolv.conf
/dev/sda1             61255492   2137656  55976512   4% /etc/hostname
/dev/sda1             61255492   2137656  55976512   4% /etc/hosts
tmpfs                   204628       536    204092   0% /run/docker.sock
tmpfs                  1023132         0   1023132   0% /proc/acpi
tmpfs                    65536         0     65536   0% /proc/kcore
tmpfs                    65536         0     65536   0% /proc/keys
tmpfs                    65536         0     65536   0% /proc/timer_list
tmpfs                    65536         0     65536   0% /proc/sched_debug
tmpfs                  1023132         0   1023132   0% /sys/firmware
        ✔ Docker environment should have more than 2GB free disk space
14:31:09.051 [testcontainers-ryuk] DEBUG org.testcontainers.utility.ResourceReaper - Sending 'label=com.docker.compose.project%3Dus4sibnd6b3s' to Ryuk
14:31:09.051 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: ListImagesCmdImpl[imageNameFilter=rabbitmq:3.7-alpine,showAll=false,filters=com.github.dockerjava.core.util.FiltersBuilder@0,execution=com.github.dockerjava.core.exec.ListImagesCmdExec@c334472]
14:31:09.052 [testcontainers-ryuk] DEBUG org.testcontainers.utility.ResourceReaper - Received 'ACK' from Ryuk
14:31:09.057 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: ListImagesCmdImpl[imageNameFilter=elasticsearch:7.3.0,showAll=false,filters=com.github.dockerjava.core.util.FiltersBuilder@0,execution=com.github.dockerjava.core.exec.ListImagesCmdExec@75f8a056]
14:31:09.066 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: ListImagesCmdImpl[imageNameFilter=<null>,showAll=false,filters=com.github.dockerjava.core.util.FiltersBuilder@0,execution=com.github.dockerjava.core.exec.ListImagesCmdExec@a4950fd]
14:31:09.074 [Test worker] DEBUG org.testcontainers.images.AbstractImagePullPolicy - Using locally available and not pulling image: docker/compose:1.24.1
14:31:09.074 [Test worker] DEBUG 🐳 [docker/compose:1.24.1] - Set env COMPOSE_FILE=/Users/avi/Documents/tracker/docker-compose-fortest.yml
14:31:09.076 [Test worker] DEBUG 🐳 [docker/compose:1.24.1] - Starting container: docker/compose:1.24.1
14:31:09.076 [Test worker] DEBUG 🐳 [docker/compose:1.24.1] - Trying to start container: docker/compose:1.24.1
14:31:09.077 [Test worker] DEBUG 🐳 [docker/compose:1.24.1] - Trying to start container: docker/compose:1.24.1 (attempt 1/1)
14:31:09.077 [Test worker] DEBUG 🐳 [docker/compose:1.24.1] - Starting container: docker/compose:1.24.1
14:31:09.077 [Test worker] INFO 🐳 [docker/compose:1.24.1] - Creating container for image: docker/compose:1.24.1
14:31:09.077 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - Looking up auth config for image: docker/compose:1.24.1
14:31:09.077 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - RegistryAuthLocator has configFile: /Users/avi/.docker/config.json (exists) and commandPathPrefix: 
14:31:09.077 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - registryName [index.docker.io] for dockerImageName [docker/compose:1.24.1]
14:31:09.078 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - Executing docker credential provider: docker-credential-desktop to locate auth config for: index.docker.io
14:31:09.078 [Test worker] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.ProcessExecutor - Executing [docker-credential-desktop, get].
14:31:09.081 [Test worker] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.ProcessExecutor - Started Process[pid=4346, exitValue="not exited"]
14:31:09.120 [WaitForProcess-Process[pid=4346, exitValue="not exited"]] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.WaitForProcess - Process[pid=4346, exitValue=1] stopped with exit code 1
14:31:09.121 [Test worker] INFO org.testcontainers.utility.RegistryAuthLocator - Credential helper/store (docker-credential-desktop) does not have credentials for index.docker.io
14:31:09.121 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - no matching Auth Configs - falling back to defaultAuthConfig [null]
14:31:09.121 [Test worker] DEBUG org.testcontainers.dockerclient.auth.AuthDelegatingDockerClientConfig - Effective auth config [null]
14:31:09.124 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: ListImagesCmdImpl[imageNameFilter=alpine:3.5,showAll=false,filters=com.github.dockerjava.core.util.FiltersBuilder@0,execution=com.github.dockerjava.core.exec.ListImagesCmdExec@2ce56169]
14:31:09.137 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - Looking up auth config for image: alpine:3.5
14:31:09.137 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - RegistryAuthLocator has configFile: /Users/avi/.docker/config.json (exists) and commandPathPrefix: 
14:31:09.137 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - registryName [index.docker.io] for dockerImageName [alpine:3.5]
14:31:09.137 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - Executing docker credential provider: docker-credential-desktop to locate auth config for: index.docker.io
14:31:09.137 [Test worker] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.ProcessExecutor - Executing [docker-credential-desktop, get].
14:31:09.140 [Test worker] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.ProcessExecutor - Started Process[pid=4348, exitValue="not exited"]
14:31:09.179 [WaitForProcess-Process[pid=4348, exitValue="not exited"]] DEBUG org.testcontainers.shaded.org.zeroturnaround.exec.WaitForProcess - Process[pid=4348, exitValue=1] stopped with exit code 1
14:31:09.180 [Test worker] INFO org.testcontainers.utility.RegistryAuthLocator - Credential helper/store (docker-credential-desktop) does not have credentials for index.docker.io
14:31:09.181 [Test worker] DEBUG org.testcontainers.utility.RegistryAuthLocator - no matching Auth Configs - falling back to defaultAuthConfig [null]
14:31:09.181 [Test worker] DEBUG org.testcontainers.dockerclient.auth.AuthDelegatingDockerClientConfig - Effective auth config [null]
14:31:09.183 [Test worker] DEBUG org.testcontainers.utility.MountableFile - Copying classpath resource(s) from jar:file:/Users/avi/.gradle/caches/modules-2/files-2.1/org.testcontainers/testcontainers/1.12.4/456b6facac12c4b67130d9056a43c011679e9f0c/testcontainers-1.12.4.jar!/org/testcontainers/utility/ResourceReaper.class to /tmp/.testcontainers-tmp-12069625511582777675 to permit Docker to bind
14:31:09.183 [Test worker] DEBUG org.testcontainers.utility.MountableFile - Copying resource org/testcontainers/utility/ResourceReaper.class from JAR file /Users/avi/.gradle/caches/modules-2/files-2.1/org.testcontainers/testcontainers/1.12.4/456b6facac12c4b67130d9056a43c011679e9f0c/testcontainers-1.12.4.jar
14:31:09.188 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: com.github.dockerjava.core.command.CreateContainerCmdImpl@7a40473[name=<null>,hostName=<null>,domainName=<null>,user=<null>,attachStdin=<null>,attachStdout=<null>,attachStderr=<null>,portSpecs=<null>,tty=<null>,stdinOpen=<null>,stdInOnce=<null>,env=<null>,cmd=<null>,healthcheck=<null>,argsEscaped=<null>,entrypoint=<null>,image=alpine:3.5,volumes=com.github.dockerjava.api.model.Volumes@75772c57,workingDir=<null>,macAddress=<null>,onBuild=<null>,networkDisabled=<null>,exposedPorts=com.github.dockerjava.api.model.ExposedPorts@58e4160c,stopSignal=<null>,stopTimeout=<null>,hostConfig=com.github.dockerjava.api.model.HostConfig@37bb4d61[binds=com.github.dockerjava.api.model.Binds@101b4079,blkioWeight=<null>,blkioWeightDevice=<null>,blkioDeviceReadBps=<null>,blkioDeviceWriteBps=<null>,blkioDeviceReadIOps=<null>,blkioDeviceWriteIOps=<null>,memorySwappiness=<null>,nanoCPUs=<null>,capAdd=<null>,capDrop=<null>,containerIDFile=<null>,cpuPeriod=<null>,cpuRealtimePeriod=<null>,cpuRealtimeRuntime=<null>,cpuShares=<null>,cpuQuota=<null>,cpusetCpus=<null>,cpusetMems=<null>,devices=<null>,deviceCgroupRules=<null>,diskQuota=<null>,dns=<null>,dnsOptions=<null>,dnsSearch=<null>,extraHosts=<null>,groupAdd=<null>,ipcMode=<null>,cgroup=<null>,links=<null>,logConfig=<null>,lxcConf=<null>,memory=<null>,memorySwap=<null>,memoryReservation=<null>,kernelMemory=<null>,networkMode=<null>,oomKillDisable=<null>,init=<null>,autoRemove=<null>,oomScoreAdj=<null>,portBindings=<null>,privileged=<null>,publishAllPorts=<null>,readonlyRootfs=<null>,restartPolicy=<null>,ulimits=<null>,cpuCount=<null>,cpuPercent=<null>,ioMaximumIOps=<null>,ioMaximumBandwidth=<null>,volumesFrom=<null>,mounts=<null>,pidMode=<null>,isolation=<null>,securityOpts=<null>,storageOpt=<null>,cgroupParent=<null>,volumeDriver=<null>,shmSize=<null>,pidsLimit=<null>,runtime=<null>,tmpFs=<null>,utSMode=<null>,usernsMode=<null>,sysctls=<null>,consoleSize=<null>],labels={org.testcontainers=true, org.testcontainers.sessionId=fd57b56e-3e82-4bcc-83fe-ef0638ecc4bb},shell=<null>,networkingConfig=<null>,ipv4Address=<null>,ipv6Address=<null>,aliases=<null>,authConfig=<null>,execution=com.github.dockerjava.core.exec.CreateContainerCmdExec@5c42d3b9]
14:31:09.332 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: 2915981263c9db299abb435c8869d9718bf869e509021e7c335183671a5713dc,com.github.dockerjava.core.exec.StartContainerCmdExec@6fcaed15
14:31:09.841 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: 2915981263c9db299abb435c8869d9718bf869e509021e7c335183671a5713dc,.,/dummy,com.github.dockerjava.core.exec.CopyArchiveFromContainerCmdExec@17e4eb50
14:31:10.097 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: 2915981263c9db299abb435c8869d9718bf869e509021e7c335183671a5713dc,true,true,com.github.dockerjava.core.exec.RemoveContainerCmdExec@275e2c60
14:31:10.577 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: com.github.dockerjava.core.command.CreateContainerCmdImpl@366855f5[name=<null>,hostName=<null>,domainName=<null>,user=<null>,attachStdin=<null>,attachStdout=<null>,attachStderr=<null>,portSpecs=<null>,tty=<null>,stdinOpen=<null>,stdInOnce=<null>,env={DOCKER_HOST=unix:///docker.sock,COMPOSE_PROJECT_NAME=us4sibnd6b3s,COMPOSE_FILE=/Users/avi/Documents/tracker/docker-compose-fortest.yml},cmd={up,-d},healthcheck=<null>,argsEscaped=<null>,entrypoint=<null>,image=docker/compose:1.24.1,volumes=com.github.dockerjava.api.model.Volumes@5a7b7d09,workingDir=/Users/avi/Documents/tracker/,macAddress=<null>,onBuild=<null>,networkDisabled=<null>,exposedPorts=com.github.dockerjava.api.model.ExposedPorts@78ce7aeb,stopSignal=<null>,stopTimeout=<null>,hostConfig=com.github.dockerjava.api.model.HostConfig@63865264[binds=com.github.dockerjava.api.model.Binds@17b5741c,blkioWeight=<null>,blkioWeightDevice=<null>,blkioDeviceReadBps=<null>,blkioDeviceWriteBps=<null>,blkioDeviceReadIOps=<null>,blkioDeviceWriteIOps=<null>,memorySwappiness=<null>,nanoCPUs=<null>,capAdd=<null>,capDrop=<null>,containerIDFile=<null>,cpuPeriod=<null>,cpuRealtimePeriod=<null>,cpuRealtimeRuntime=<null>,cpuShares=<null>,cpuQuota=<null>,cpusetCpus=<null>,cpusetMems=<null>,devices=<null>,deviceCgroupRules=<null>,diskQuota=<null>,dns=<null>,dnsOptions=<null>,dnsSearch=<null>,extraHosts={},groupAdd=<null>,ipcMode=<null>,cgroup=<null>,links=com.github.dockerjava.api.model.Links@16a7d0d6,logConfig=<null>,lxcConf=<null>,memory=<null>,memorySwap=<null>,memoryReservation=<null>,kernelMemory=<null>,networkMode=<null>,oomKillDisable=<null>,init=<null>,autoRemove=<null>,oomScoreAdj=<null>,portBindings={},privileged=<null>,publishAllPorts=true,readonlyRootfs=<null>,restartPolicy=<null>,ulimits=<null>,cpuCount=<null>,cpuPercent=<null>,ioMaximumIOps=<null>,ioMaximumBandwidth=<null>,volumesFrom={},mounts=<null>,pidMode=<null>,isolation=<null>,securityOpts=<null>,storageOpt=<null>,cgroupParent=<null>,volumeDriver=<null>,shmSize=<null>,pidsLimit=<null>,runtime=<null>,tmpFs=<null>,utSMode=<null>,usernsMode=<null>,sysctls=<null>,consoleSize=<null>],labels={org.testcontainers=true, org.testcontainers.sessionId=fd57b56e-3e82-4bcc-83fe-ef0638ecc4bb},shell=<null>,networkingConfig=<null>,ipv4Address=<null>,ipv6Address=<null>,aliases=<null>,authConfig=<null>,execution=com.github.dockerjava.core.exec.CreateContainerCmdExec@4cf19d7b]
14:31:10.723 [Test worker] INFO 🐳 [docker/compose:1.24.1] - Starting container with ID: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca
14:31:10.724 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,com.github.dockerjava.core.exec.StartContainerCmdExec@57398818
14:31:11.793 [Test worker] INFO 🐳 [docker/compose:1.24.1] - Container docker/compose:1.24.1 is starting: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca
14:31:11.793 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@62059280
14:31:11.794 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca/json], queryParams={})
14:31:11.799 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@65657ea
14:31:11.799 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca/json], queryParams={})
14:31:11.905 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@4148669
14:31:11.905 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca/json], queryParams={})
14:31:12.013 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@7481b07f
14:31:12.013 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca/json], queryParams={})
14:31:12.121 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@63844d6b
14:31:12.122 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca/json], queryParams={})
14:31:12.226 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@79b64fa8
14:31:12.227 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca/json], queryParams={})
14:31:12.335 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@59b1a939
14:31:12.335 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca/json], queryParams={})
14:31:12.443 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@20cae838
14:31:12.444 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca/json], queryParams={})
14:31:12.556 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@48a3479e
14:31:12.556 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca/json], queryParams={})
14:31:12.888 [Test worker] DEBUG com.github.dockerjava.core.command.AbstrDockerCmd - Cmd: b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca,false,com.github.dockerjava.core.exec.InspectContainerCmdExec@741865e3
14:31:12.888 [Test worker] DEBUG com.github.dockerjava.core.exec.InspectContainerCmdExec - GET: OkHttpWebTarget(okHttpClient=org.testcontainers.shaded.okhttp3.OkHttpClient@4d14efb1, baseUrl=http://docker.socket/, path=[/containers/b3649bd5f1e966a967924b7631742adb225d55a86568d9e572149051777322ca/json], queryParams={})
14:31:12.896 [Test worker] ERROR 🐳 [docker/compose:1.24.1] - Could not start container
java.lang.IllegalStateException: Container did not start correctly.
    at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:423)
    at org.testcontainers.containers.GenericContainer.lambda$doStart$0(GenericContainer.java:317)
    at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:81)
    at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:315)
    at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302)
    at org.testcontainers.containers.ContainerisedDockerCompose.invoke(DockerComposeContainer.java:566)
    at org.testcontainers.containers.DockerComposeContainer.runWithCompose(DockerComposeContainer.java:247)
    at org.testcontainers.containers.DockerComposeContainer.createServices(DockerComposeContainer.java:195)
    at org.testcontainers.containers.DockerComposeContainer.start(DockerComposeContainer.java:155)
    at com.company.tracker.TrackerApplicationTests.<clinit>(TrackerApplicationTests.java:21)
    at com.company.tracker.SpringIntegrationBase.<clinit>(SpringIntegrationBase.java:39)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at org.junit.platform.commons.util.ReflectionUtils.newInstance(ReflectionUtils.java:500)
    at org.junit.jupiter.engine.execution.ConstructorInvocation.proceed(ConstructorInvocation.java:56)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:125)
    at org.junit.jupiter.api.extension.InvocationInterceptor.interceptTestClassConstructor(InvocationInterceptor.java:69)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:104)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:62)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:43)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:35)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:77)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestClassConstructor(ClassBasedTestDescriptor.java:329)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateTestClass(ClassBasedTestDescriptor.java:276)
    at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateTestClass(ClassTestDescriptor.java:77)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:258)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$2(ClassBasedTestDescriptor.java:252)
    at java.base/java.util.Optional.orElseGet(Optional.java:362)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$3(ClassBasedTestDescriptor.java:251)
    at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:29)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:106)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:105)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$1(NodeTestTask.java:107)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:107)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:75)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:220)
    at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:188)
    at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:202)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:181)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75)
    at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
    at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
    at com.sun.proxy.$Proxy2.stop(Unknown Source)
    at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:132)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
    at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
    at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    at java.base/java.lang.Thread.run(Thread.java:830)
14:31:12.932 [Test worker] ERROR 🐳 [docker/compose:1.24.1] - Log output from the failed container:
Creating network "us4sibnd6b3s_default" with driver "bridge"

Pool overlaps with other one on this address space

java.lang.ExceptionInInitializerError
    at com.company.tracker.SpringIntegrationBase.<clinit>(SpringIntegrationBase.java:39)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at org.junit.platform.commons.util.ReflectionUtils.newInstance(ReflectionUtils.java:500)
    at org.junit.jupiter.engine.execution.ConstructorInvocation.proceed(ConstructorInvocation.java:56)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:125)
    at org.junit.jupiter.api.extension.InvocationInterceptor.interceptTestClassConstructor(InvocationInterceptor.java:69)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:104)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:62)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:43)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:35)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:77)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestClassConstructor(ClassBasedTestDescriptor.java:329)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateTestClass(ClassBasedTestDescriptor.java:276)
    at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateTestClass(ClassTestDescriptor.java:77)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:258)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$2(ClassBasedTestDescriptor.java:252)
    at java.base/java.util.Optional.orElseGet(Optional.java:362)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$3(ClassBasedTestDescriptor.java:251)
    at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:29)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:106)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:105)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$1(NodeTestTask.java:107)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:107)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:75)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:220)
    at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:188)
    at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:202)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:181)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75)
    at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
    at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
    at com.sun.proxy.$Proxy2.stop(Unknown Source)
    at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:132)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
    at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
    at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    at java.base/java.lang.Thread.run(Thread.java:830)
Caused by: org.testcontainers.containers.ContainerLaunchException: Container startup failed
    at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:322)
    at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302)
    at org.testcontainers.containers.ContainerisedDockerCompose.invoke(DockerComposeContainer.java:566)
    at org.testcontainers.containers.DockerComposeContainer.runWithCompose(DockerComposeContainer.java:247)
    at org.testcontainers.containers.DockerComposeContainer.createServices(DockerComposeContainer.java:195)
    at org.testcontainers.containers.DockerComposeContainer.start(DockerComposeContainer.java:155)
    at com.company.tracker.TrackerApplicationTests.<clinit>(TrackerApplicationTests.java:21)
    ... 90 more
Caused by: org.rnorth.ducttape.RetryCountExceededException: Retry limit hit with exception
    at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:88)
    at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:315)
    ... 96 more
Caused by: org.testcontainers.containers.ContainerLaunchException: Could not create/start container
    at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:485)
    at org.testcontainers.containers.GenericContainer.lambda$doStart$0(GenericContainer.java:317)
    at org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:81)
    ... 97 more
Caused by: java.lang.IllegalStateException: Container did not start correctly.
    at org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:423)
    ... 99 more

Could not initialize class com.company.tracker.service.ConfigurationWriterTest
java.lang.NoClassDefFoundError: Could not initialize class com.company.tracker.service.ConfigurationWriterTest
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at org.junit.platform.commons.util.ReflectionUtils.newInstance(ReflectionUtils.java:500)
    at org.junit.jupiter.engine.execution.ConstructorInvocation.proceed(ConstructorInvocation.java:56)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:125)
    at org.junit.jupiter.api.extension.InvocationInterceptor.interceptTestClassConstructor(InvocationInterceptor.java:69)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:104)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:62)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:43)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:35)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
    at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:77)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeTestClassConstructor(ClassBasedTestDescriptor.java:329)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateTestClass(ClassBasedTestDescriptor.java:276)
    at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.instantiateTestClass(ClassTestDescriptor.java:77)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.instantiateAndPostProcessTestInstance(ClassBasedTestDescriptor.java:258)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$2(ClassBasedTestDescriptor.java:252)
    at java.base/java.util.Optional.orElseGet(Optional.java:362)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$testInstancesProvider$3(ClassBasedTestDescriptor.java:251)
    at org.junit.jupiter.engine.execution.TestInstancesProvider.getTestInstances(TestInstancesProvider.java:29)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$prepare$0(TestMethodTestDescriptor.java:106)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:105)
    at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.prepare(TestMethodTestDescriptor.java:69)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$prepare$1(NodeTestTask.java:107)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.prepare(NodeTestTask.java:107)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:75)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:125)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:135)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:123)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:122)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:80)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:220)
    at org.junit.platform.launcher.core.DefaultLauncher.lambda$execute$6(DefaultLauncher.java:188)
    at org.junit.platform.launcher.core.DefaultLauncher.withInterceptedStreams(DefaultLauncher.java:202)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:181)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:128)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:99)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:79)
    at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:75)
    at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
    at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
    at com.sun.proxy.$Proxy2.stop(Unknown Source)
    at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:132)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
    at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
    at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    at java.base/java.lang.Thread.run(Thread.java:830)
fullkomnun commented 4 years ago

I can also approve that this issue still happens with the latest java-test-containers(1.12.4) on macOS Catalina, JDK 1.8(v231), docker version 19.03.5 with maven. Adding custom code to invoke 'docker network prune -f' helps avoid this:

    private fun dockerNetworkPrune() {
        ProcessExecutor()
            .command("docker", "network", "prune", "-f")
            .redirectOutput(System.out)
            .redirectError(System.out)
            .directory(composeRoot)
            .exitValueNormal()
            .executeNoTimeout()
    }
rnorth commented 4 years ago

Thanks - if someone could provide a reproducible example I'll look into it.

solidpulse commented 4 years ago

@rnorth This only occurs in MacOS when you re-run the test.

import lombok.extern.slf4j.Slf4j;
import org.junit.ClassRule;
import org.testcontainers.containers.DockerComposeContainer;

import java.io.File;

@Slf4j
public class ApplicationTestsBase {

    @ClassRule
    public static DockerComposeContainer environment;

    static {
        environment = new DockerComposeContainer(new File("docker-compose-fortest.yml"))
                        .withExposedService("rabbitmq_1",5672)
                        .withExposedService("elasticsearch_1",9200);
        environment.start();
        int rabbitPort = environment.getServicePort("rabbitmq_1", 5672);
        int elasticSearchPort = environment.getServicePort("elasticsearch_1", 9200);
        System.setProperty("RABBIT_PORT", rabbitPort+"");
        System.setProperty("ELASTICSEARCH_PORT", elasticSearchPort+"");
    }

}
#"docker-compose-fortest.yml"
version: "2"
networks:
  default:
    driver: bridge
    ipam:
      config:
        - subnet: 172.177.57.0/24
services:
  rabbitmq:
    ports:
      - '5672:5672'
      - '15672:15672'
    environment:
      - RABBITMQ_DEFAULT_USER=admin
      - RABBITMQ_DEFAULT_PASS=pwd
      - RABBITMQ_DEFAULT_VHOST=admin
    image: 'rabbitmq:3.7-alpine'

  elasticsearch:
    environment:
      - discovery.type=single-node
    image: 'elasticsearch:7.3.0'
bsideup commented 4 years ago

@avierr it is a known issue of Docker Compose format v2. Please use 2.1 or above.