Hvorfor Testcontainers withEnv ikke proxyer image-pulls
Konfigurer Docker-daemonen til et mislykket pull; containerens proxyvariabler når først programmerne, efter containeren er oprettet.
Hvis Testcontainers fejler under et image-pull, kan den kommende containers withEnv-indstillinger ikke hjælpe. Det er Docker-daemonen, der downloader fra image-registret, før containeren findes.
| Mislykket handling | Proxykonfiguration, der skal undersøges |
|---|---|
| Image-pull | Den Docker-daemon, testen bruger, og dens rute til registret |
| Download inde i den kørende container | De input, applikationen understøtter i den container |
| Java-testen forbinder til Docker eller applikationen | Den Java-klient, der laver den forbindelse |
I det andet tilfælde skal du tilføje miljøvariabler til den eksisterende GenericContainer-definition:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Hvis en download inde i containeren må bruge et offentligt HTTP-endpoint, skal du udfylde værdierne fra HTTP-proxylisten. Programmet i imaget skal læse de variabler. De gør ikke en vilkårlig databasesocket til HTTP-proxytrafik. Endpointet skal også kunne nås fra containeren: dets 127.0.0.1 peger på sig selv.
I det første tilfælde skal du finde det Docker-miljø, Testcontainers faktisk bruger. En fjern-daemon eller Docker Desktop kan hente konfiguration fra en anden kilde end en lokal dockerd. Hold lokale testtjenester og Docker-API'et på deres tilsigtede ruter, når du tilføjer en bred proxy-standard.