简体   繁体   English

开启 VPN 的测试容器:无法连接到本地主机的 Ryuk:49198

[英]Testcontainer with VPN on: Can not connect to Ryuk at localhost:49198

I'm using Testcontainer on Unit and Integration test in a Java/maven project.我在 Java/maven 项目的单元和集成测试中使用 Testcontainer。 Tests are working as expected, until I run the VPN I'm using to work.测试按预期进行,直到我运行我用来工作的 VPN。 With the VPN, I can see the error message "Can not connect to Ryuk at localhost:49198"使用 VPN,我可以看到错误消息“无法在 localhost:49198 连接到 Ryuk”

Here are the complete logs:以下是完整的日志:

Connected to the target VM, address: '127.0.0.1:50813', transport: 'socket'
2022-10-03 18:01:49.728  INFO   --- [           main] o.t.d.DockerClientProviderStrategy       : Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
2022-10-03 18:01:50.280  INFO   --- [           main] o.t.d.DockerClientProviderStrategy       : Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
2022-10-03 18:01:50.282  INFO   --- [           main] org.testcontainers.DockerClientFactory   : Docker host IP address is localhost
2022-10-03 18:01:50.308  INFO   --- [           main] org.testcontainers.DockerClientFactory   : Connected to docker: 
  Server Version: 20.10.16
  API Version: 1.41
  Operating System: Ubuntu 20.04.3 LTS
  Total Memory: 15716 MB
2022-10-03 18:01:50.311  INFO   --- [           main] o.t.utility.ImageNameSubstitutor         : Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
2022-10-03 18:01:50.926  WARN   --- [containers-ryuk] o.testcontainers.utility.ResourceReaper  : Can not connect to Ryuk at localhost:49198

java.net.SocketException: Connection reset
    at java.base/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:323)
    at java.base/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:350)
    at java.base/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:803)
    at java.base/java.net.Socket$SocketInputStream.read(Socket.java:966)
    at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:270)
    at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:313)
    at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:188)
    at java.base/java.io.InputStreamReader.read(InputStreamReader.java:177)
    at java.base/java.io.BufferedReader.fill(BufferedReader.java:162)
    at java.base/java.io.BufferedReader.readLine(BufferedReader.java:329)
    at java.base/java.io.BufferedReader.readLine(BufferedReader.java:396)
    at org.testcontainers.utility.ResourceReaper$FilterRegistry.waitForAcknowledgment(ResourceReaper.java:489)
    at org.testcontainers.utility.ResourceReaper$FilterRegistry.register(ResourceReaper.java:485)
    at org.testcontainers.utility.ResourceReaper.lambda$null$1(ResourceReaper.java:203)
    at org.rnorth.ducttape.ratelimits.RateLimiter.doWhenReady(RateLimiter.java:27)
    at org.testcontainers.utility.ResourceReaper.lambda$start$2(ResourceReaper.java:185)
    at java.base/java.lang.Thread.run(Thread.java:833)

I tried multiple things like setting TESTCONTAINERS_HOST_OVERRIDE to localhost but it didn't work.我尝试了多种方法,例如将TESTCONTAINERS_HOST_OVERRIDE设置为 localhost,但没有成功。 (I'm not sure if it was taken into account, where should I set this variable?) (我不确定是否考虑到了,我应该在哪里设置这个变量?)

I inspected the docker container of testcontainers, with or without VPN and I don't see any difference.我检查了 docker 容器的 testcontainers,有或没有 VPN,我没有发现任何区别。

Any idea?任何的想法? Thanks谢谢

Problem solved: The VPN was using the same IP range as Docker, which implied collisions.问题已解决:VPN 使用与 Docker 相同的 IP 范围,这意味着冲突。 I solved by changing Docker's base IP range by creating a /etc/docker/daemon.json file with another range in it and restarting docker (you can check here: https://medium.com/codebrace/understanding-docker.networks-and-resolving-conflict-with-docker-su.net-ip-range-bfaad092a7ea )我通过创建一个包含另一个范围的 /etc/docker/daemon.json 文件并重新启动 docker 来更改 Docker 的基本 IP 范围(您可以在此处查看: https://medium.com/codebrace/understanding-docker.networks- and-resolving-conflict-with-docker-su.net-ip-range-bfaad092a7ea )

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM