windows - 如何在不同的主机上运行测试容器

标签 windows macos docker testcontainers

当启动许多测试容器时,我的 16GB MBP 变得非常慢。我想在运行 Windows 的强大桌面上运行它们。如果这在我的本地网络之外有效,那就更好了。

最佳答案

首先,在两台机器上安装 VPN(例如 Tailscale)。您需要这样做,因为 Testcontainers 使用的是随机端口,因此您不能只重定向您使用的端口,而是需要能够完全访问接口(interface)上所有可能的端口。
客户
然后在使用 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 桌面的“设置 > 常规”中启用“公开守护程序”。
在 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
[2] https://www.testcontainers.org/features/configuration/

关于windows - 如何在不同的主机上运行测试容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62298539/

相关文章:

css - SVG 在 Mac 上的 Chrome 中显示,但在 Windows 上的 Chrome 中不显示

mysql - Docker Compose mysql 环境变量与 Application .env 数据库变量。很困惑

windows - 存在什么解决方案来运行在 Windows 中具有安装向导的应用程序的安装

windows - 无法在 Windows 下将 gvim 与病原体一起使用

linux - OS X 的 bash 脚本不能使用 --color=auto

cocoa - 当 Mac OS X 上启动不同的应用程序时,如何在我的应用程序中收到通知?

python - ArangoDB 读取超时(读取超时=60)

python - 有没有办法获取使用 python 的 docker API 创建 docker 镜像的日期

windows - 如何在Windows服务或NT服务中托管WCF?

c++ - 在没有 Visual Studio 的情况下编译依赖 <windows.h> 的程序