Closed
Description
Hi,
I have a jenkins CI with a master node and two slaves. All tests are running smoothly on slaves but they fail once run on master. Master and slaves differs in terms of ubuntu version and docker version.
The master is:
API Version: 1.40
Operating System: Ubuntu 18.04.3 LTS
While the slaves are:
Server Version: 19.03.0
API Version: 1.40
Operating System: Ubuntu 16.04.6 LTS
I use testcontainers 1.12.4
Exceptions I am getting on master node:
13:11:08 [info] org.testcontainers.containers.ContainerLaunchException: Container startup failed
13:11:08 [info] at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:322)
13:11:08 [info] at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302)
13:11:08 [info] at com.dimafeng.testcontainers.SingleContainer.start(Container.scala:42)
13:11:08 [info] ...
13:11:08 [info] Cause: org.testcontainers.containers.ContainerFetchException: Can't get Docker image: RemoteDockerImage(imageNameFuture=java.util.concurrent.CompletableFuture@687cf499[Completed normally], imagePullPolicy=DefaultPullPolicy(), dockerClient=LazyDockerClient.INSTANCE)
13:11:08 [info] at org.testcontainers.containers.GenericContainer.getDockerImageName(GenericContainer.java:1265)
13:11:08 [info] at org.testcontainers.containers.GenericContainer.logger(GenericContainer.java:600)
13:11:08 [info] at org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:311)
13:11:08 [info] at org.testcontainers.containers.GenericContainer.start(GenericContainer.java:302)
13:11:08 [info] at com.dimafeng.testcontainers.SingleContainer.start(Container.scala:42)
13:11:08 [info] ...
13:11:08 [info] Cause: java.lang.IllegalStateException: Can not connect to Ryuk
13:11:08 [info] at org.testcontainers.utility.ResourceReaper.start(ResourceReaper.java:150)
13:11:08 [info] at org.testcontainers.DockerClientFactory.client(DockerClientFactory.java:135)
13:11:08 [info] at org.testcontainers.LazyDockerClient.getDockerClient(LazyDockerClient.java:14)
13:11:08 [info] at org.testcontainers.LazyDockerClient.listImagesCmd(LazyDockerClient.java:12)
13:11:08 [info] at org.testcontainers.images.LocalImagesCache.maybeInitCache(LocalImagesCache.java:68)
13:11:08 [info] at org.testcontainers.images.LocalImagesCache.get(LocalImagesCache.java:32)
13:11:08 [info] at org.testcontainers.images.AbstractImagePullPolicy.shouldPull(AbstractImagePullPolicy.java:18)
13:11:08 [info] at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:62)
13:11:08 [info] at org.testcontainers.images.RemoteDockerImage.resolve(RemoteDockerImage.java:25)
13:11:08 [info] at org.testcontainers.utility.LazyFuture.getResolvedValue(LazyFuture.java:20)
and
12:11:37.140 [testcontainers-ryuk] WARN o.t.u.ResourceReaper - Can not connect to Ryuk at localhost:32965
13:11:37 java.net.SocketException: Connection reset
13:11:37 at java.net.SocketInputStream.read(SocketInputStream.java:210)
13:11:37 at java.net.SocketInputStream.read(SocketInputStream.java:141)
13:11:37 at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
13:11:37 at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
13:11:37 at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
13:11:37 at java.io.InputStreamReader.read(InputStreamReader.java:184)
13:11:37 at java.io.BufferedReader.fill(BufferedReader.java:161)
13:11:37 at java.io.BufferedReader.readLine(BufferedReader.java:324)
13:11:37 at java.io.BufferedReader.readLine(BufferedReader.java:389)
13:11:37 at org.testcontainers.utility.ResourceReaper$FilterRegistry.waitForAcknowledgment(ResourceReaper.java:406)
13:11:37 at org.testcontainers.utility.ResourceReaper$FilterRegistry.register(ResourceReaper.java:402)
13:11:37 at org.testcontainers.utility.ResourceReaper.lambda$start$1(ResourceReaper.java:128)
13:11:37 at java.lang.Thread.run(Thread.java:748)
Although when I call docker logs on master node
+ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7b115c90863a quay.io/testcontainers/ryuk:0.2.3 "/app" 32 seconds ago Up 31 seconds 0.0.0.0:32965->8080/tcp testcontainers-ryuk-75c3e431-6dd5-4faf-9b54-df86d395ff4e
++ docker ps -q
+ docker logs 7b115c90863a
2020/01/12 10:08:16 Starting on port 8080...
I can see that ryuk has started.
I assume that this is not a fault of ubuntu neither of docker version (mainly because I use similar versions on my local machine and it all works), but rather some specific configuration of master node. Unfortunately I have no idea how to debug it further, so any help would be appreciated.
Cheers!