Hvorfor Testcontainers withEnv ikke proxyer image-hentinger
Konfigurer Docker-daemonen for en mislykket henting; containerens proxyvariabler når først programmene etter at containeren er opprettet.
Hvis Testcontainers feiler under en image-henting, kan den kommende containerens withEnv-innstillinger ikke hjelpe. Det er Docker-daemonen som gjør den nedlastingen fra registeret før containeren finnes.
| Mislykket operasjon | Proxykonfigurasjon som må undersøkes |
|---|---|
| Image-henting | Docker-daemonen som testen bruker, og ruten dens til registeret |
| Nedlasting inne i den kjørende containeren | Inndataene applikasjonen støtter i den containeren |
| Java-testen kobler til Docker eller applikasjonen | Java-klienten som lager den tilkoblingen |
For det andre tilfellet, legg miljøvariabler til den eksisterende GenericContainer-definisjonen:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Hvis en nedlasting inne i containeren får bruke et offentlig HTTP-endepunkt, fyll ut disse verdiene fra HTTP-proxylisten. Programmet i imaget må lese disse variablene. De gjør ikke en vilkårlig databasesocket om til HTTP-proxytrafikk. Endepunktet må også være nåbart fra containeren: 127.0.0.1 viser til seg selv.
For det første tilfellet, finn Docker-miljøet som Testcontainers faktisk bruker. En ekstern daemon eller Docker Desktop kan hente konfigurasjonen fra en annen kilde enn en lokal dockerd. Hold lokale testtjenester og Docker-API-et på de tiltenkte rutene når du legger til en bred proxy-standard.