启动许多Testcontainer时,我的16GB MBP变得非常慢。我想在运行Windows的强大桌面上运行它们。如果这可以从我的本地网络之外运行,那就更好了。
答案 0 :(得分:2)
首先,在两台计算机上安装一个VPN(例如Tailscale)。您需要这样做,因为Testcontainers使用的是随机端口,因此,您不仅可以重定向使用的端口,还需要能够完全访问接口上所有可能的端口。
客户
然后在客户端上使用Testcontainers调用测试,编辑一些文件。
在〜/ .docker-java.properties或C:/Users/myuser/.docker-java.properties中:
DOCKER_HOST=tcp://DOCKER_HOST_VPN_IP:2375
DOCKER_TLS_VERIFY=0
在〜/ .testcontainers.properties或C:/Users/myuser/.testcontainers.properties中:
docker.client.strategy=org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy
服务器
在运行Docker容器的机器上:
在Docker Desktop的“设置>常规”中启用“暴露守护程序”。
在Windows上:
在提升的命令提示符下运行,以将数据包从Tailscale IP转发到本地Docker:
netsh interface portproxy add v4tov4 listenport=2375 connectaddress=127.0.0.1 connectport=2375 listenaddress=<WINDOWS_VPN_IP> protocol=tcp
为专用网络禁用防火墙。
在Linux上:
使用IPTABLES
将在端口2375上传入的流量路由到127.0.0.1:
iptables -t nat -A PREROUTING -p tcp --dport 2375 -j DNAT --to-destination 127.0.0.1:2375
iptables -t nat -A POSTROUTING -j MASQUERADE.
参考
[2] https://github.com/docker-java/docker-java/blob/master/docs/getting_started.md