寻求 Windows 上不依赖 WSL 的 Docker 运行方案,以支持 Testcontainers 集成测试

144 天前
 huangcjmail

公司使用 Windows 环境开发,之前因使用 Docker for Windows 收到律师函。之后改用 WSL + Docker 。

现在想集成 Testcontainers 进行集成测试,它需要直接在 Windows 上运行 Docker ,WSL + Docker 的方式不再适用。

我能想到的解决方案是在 WSL 中使用 Maven 执行单元测试,但这样 IDEA 无法直接启动测试,也无法使用覆盖率等功能。

请问还有其他解决方案吗?

1600 次点击
所在节点    程序员
7 条回复
zed1018
144 天前
用 gateway 启动在 wsl 的 IDEA 可以运行单元测试
jwz426
144 天前
我是这样子干的,在 WSL 下面打开 docker 的 tcp 端口就可以直接在 windows 下面的 IDEA 跑 testcontainers 了。
/etc/docker/daemon.json
```
{ "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] }
```
imzcg2
144 天前
使用 scoop 安装 docker 的 exe cli ,然后绑定 wsl 里 tcp 暴露的 docker 即可,你被投诉是因为 docker for windows 的 desktop 环境里私货太多,想监控你太容易,现在用 cli 呗
➜ scoop info docker

Name : docker
Description : Docker CLI & Docker Engine for Windows containers. Docker is an open platform for developing, shipping, a
nd running applications.
Version : 27.0.1
Bucket : main
Website : https://docs.docker.com/engine
License : Apache-2.0
Updated at : 2024/6/25 20:31:14
Updated by : github-actions[bot]
Binaries : docker.exe | dockerd.exe
Notes : The 'dockerd' binary here only supports running Windows containers.
However it is possible to connect to existing Linux containers using the 'docker' binary
To register Docker as a service, run `dockerd --register-service`
Similarly, to unregister, run `dockerd --unregister-service`



如果你还不满意,可以测试 podman ,这个没人搞你
huangcjmail
144 天前
@jwz426 #2 我也准备用这个方案了,win 这边还得配置个环境变量 DOCKER_HOST=tcp://localhost:2375
yinmin
144 天前
直接用 hyper-v 啊,hyper-v 装 debian/ubuntu 再装 docker ,用 portainer 管理。wsl+docker 奇怪的很,没 hyper-v 直接 linux 虚拟机装 docker 舒服。
huangcjmail
144 天前
@yinmin #5 这样可以解决我这个问题吗?用 hyperv 是不是也得和 2 楼一样要配置一下?
yinmin
143 天前
@huangcjmail #6 是的。docker 开放端口注意完全,这个端口应该默认无密码,能黑入做 root 操作的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1052788

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX