testcontainers / testcontainers/testcontainers-java

[Bug]: Docker communication error using DOCKER_HOST localhost (1.17+)

Aperta
#8,773 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

type/bug
Lingua principale
Java
Stelle
8.7k
Fork
1.9k
Merge medio
2g 17h
PR unite (30g)
9

Descrizione

Module

Core

Testcontainers version

1.19.8

Using the latest Testcontainers version?

Yes

Host OS

Windows 11

Host Arch

AMD64

Docker version
Client: Docker Engine - Community
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:08:01 2023
 OS/Arch:           linux/amd64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:08:01 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.25
  GitCommit:        d8f198a4ed8892c764191ef7b3b06d8a2eeb5c7f
 runc:
  Version:          1.1.10
  GitCommit:        v1.1.10-0-g18a0cb0
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
What happened?

When I start my Junit tests in IntelliJ, it is failing and logging :

2024-06-12T11:04:16.067+02:00 WARN --- [ main] o.t.d.DockerClientProviderStrategy : DOCKER_HOST tcp://localhost:2375 is not listening
2024-06-12T11:04:16.099+02:00 INFO --- [ main] .t.d.DockerMachineClientProviderStrategy : docker-machine executable was not found on PATH ([C:\...])
2024-06-12T11:04:16.102+02:00 ERROR --- [ main] o.t.d.DockerClientProviderStrategy : Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
As no valid configuration was found, execution cannot continue.

I have configured my DOCKER_HOST with tcp://localhost:2375 and since testcontainers 1.17.0, it is no longer working as is.
I since changed my DOCKER_HOST replacing "localhost" with the WSL eth0 IP and it is working again, but I don't think it is a good solution.

I'm using WSL2, here is the WSL --version detail :

Version WSL : 2.1.5.0
Version du noyau : 5.15.146.1-2
Version WSLg : 1.0.60
Version MSRDC : 1.2.5105
Version direct3D : 1.611.1-81528511
Version de DXCore : 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Version de Windows : 10.0.22631.3593

This problem only occur since testcontainers 1.17.0 and later versions.
Testcontainers 1.16.3 (and older) works great.

My internet browser is accessing DOCKER through http://localhost:2375/ (or my WSL eth0 IP) perfectly.

Relevant log output

No response

Additional Information

No response

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con DockerClientProviderStrategy e DockerMachineClientProviderStrategy, usando il comportamento segnalato di DOCKER_HOST tcp://localhost:2375 come caso di riproduzione. Confronta Testcontainers 1.16.3 con la versione 1.17.0 e successive su Windows 11 con WSL2. Il lavoro è completato quando la comunicazione Docker basata su localhost funziona di nuovo senza richiedere l’IP eth0 di WSL, con una copertura di regressione per la configurazione segnalata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
docker, java
Ambito
testing
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.