公司使用 Windows 环境开发,之前因使用 Docker for Windows 收到律师函。之后改用 WSL + Docker 。
现在想集成 Testcontainers 进行集成测试,它需要直接在 Windows 上运行 Docker ,WSL + Docker 的方式不再适用。
我能想到的解决方案是在 WSL 中使用 Maven 执行单元测试,但这样 IDEA 无法直接启动测试,也无法使用覆盖率等功能。
请问还有其他解决方案吗?
1
zed1018 137 天前
用 gateway 启动在 wsl 的 IDEA 可以运行单元测试
|
2
jwz426 137 天前 1
我是这样子干的,在 WSL 下面打开 docker 的 tcp 端口就可以直接在 windows 下面的 IDEA 跑 testcontainers 了。
/etc/docker/daemon.json ``` { "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] } ``` |
3
imzcg2 137 天前
使用 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 ,这个没人搞你 |
4
huangcjmail OP @jwz426 #2 我也准备用这个方案了,win 这边还得配置个环境变量 DOCKER_HOST=tcp://localhost:2375
|
5
yinmin 137 天前
直接用 hyper-v 啊,hyper-v 装 debian/ubuntu 再装 docker ,用 portainer 管理。wsl+docker 奇怪的很,没 hyper-v 直接 linux 虚拟机装 docker 舒服。
|
6
huangcjmail OP @yinmin #5 这样可以解决我这个问题吗?用 hyperv 是不是也得和 2 楼一样要配置一下?
|
7
yinmin 137 天前
@huangcjmail #6 是的。docker 开放端口注意完全,这个端口应该默认无密码,能黑入做 root 操作的。
|