V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
huangcjmail
V2EX  ›  程序员

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

  •  
  •   huangcjmail · 168 天前 · 1642 次点击
    这是一个创建于 168 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    7 条回复    2024-06-26 19:45:19 +08:00
    zed1018
        1
    zed1018  
       168 天前
    用 gateway 启动在 wsl 的 IDEA 可以运行单元测试
    jwz426
        2
    jwz426  
       168 天前   ❤️ 1
    我是这样子干的,在 WSL 下面打开 docker 的 tcp 端口就可以直接在 windows 下面的 IDEA 跑 testcontainers 了。
    /etc/docker/daemon.json
    ```
    { "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] }
    ```
    imzcg2
        3
    imzcg2  
       168 天前
    使用 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
        4
    huangcjmail  
    OP
       168 天前
    @jwz426 #2 我也准备用这个方案了,win 这边还得配置个环境变量 DOCKER_HOST=tcp://localhost:2375
    yinmin
        5
    yinmin  
       168 天前
    直接用 hyper-v 啊,hyper-v 装 debian/ubuntu 再装 docker ,用 portainer 管理。wsl+docker 奇怪的很,没 hyper-v 直接 linux 虚拟机装 docker 舒服。
    huangcjmail
        6
    huangcjmail  
    OP
       167 天前
    @yinmin #5 这样可以解决我这个问题吗?用 hyperv 是不是也得和 2 楼一样要配置一下?
    yinmin
        7
    yinmin  
       167 天前
    @huangcjmail #6 是的。docker 开放端口注意完全,这个端口应该默认无密码,能黑入做 root 操作的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4968 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 08:28 · PVG 16:28 · LAX 00:28 · JFK 03:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.