testcontainers / testcontainers/testcontainers-java
Codeship builds fail: `can not connect to Ryuk`
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 8.7k
- Forks
- 1.9k
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 9
Description
TestContainers works locally. Builds on Codeship fail with the following:
2018-02-10_19:22:35.027 WARN o.t.utility.ResourceReaper - Can not connect to Ryuk at 172.17.0.1:32768
java.net.SocketException: Broken pipe (Write failed)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
at java.net.SocketOutputStream.write(SocketOutputStream.java:134)
at org.testcontainers.utility.ResourceReaper.lambda$start$2(ResourceReaper.java:136)
at java.lang.Thread.run(Thread.java:748)
2018-02-10_19:22:35.044 WARN o.t.utility.ResourceReaper - Can not connect to Ryuk at 172.17.0.1:32768
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:210)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:161)
at java.io.BufferedReader.readLine(BufferedReader.java:324)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at org.testcontainers.utility.ResourceReaper.lambda$start$2(ResourceReaper.java:139)
at java.lang.Thread.run(Thread.java:748)
I do not use volume mapping for this service, but I use volumes to build other services. My understanding of https://www.testcontainers.org/usage/inside_docker.html is that I do not need to mount the Docker socket volume.
I've set add_docker: true in my codeship-services.yml, which does the following:
Add the environment variables DOCKER_HOST, DOCKER_TLS_VERIFY and DOCKER_CERT_PATH from the host.
If DOCKER_CERT_PATH is set, it will mount the certificate directory through to the container. See add_docker for an example using Docker-in-Docker.
https://documentation.codeship.com/pro/builds-and-configuration/services/
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the ResourceReaper stack trace and the Testcontainers inside-Docker documentation, then inspect how Codeship's add_docker setting supplies DOCKER_HOST, DOCKER_TLS_VERIFY, DOCKER_CERT_PATH, and certificates. Reproduce the Ryuk connection failure in the reported Codeship setup; done means identifying the configuration cause and documenting or implementing the supported resolution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, java
- Domain
- devops, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100