Hvorfor Testcontainers withEnv ikke sender image-henting gjennom proxy
Sett opp Docker-daemonen for en mislykket henting; proxyvariablene i containeren når programmene først når containeren er opprettet.
Dersom Testcontainers feiler mens et image hentes, hjelper ikke withEnv-innstillingene til den kommende containeren. Det er Docker-daemonen som utfører den nedlastingen fra registeret før containeren eksisterer.
| Mislykket operasjon | Proxyoppsett som bør undersøkes |
|---|---|
| Image-henting | Docker-daemonen testen bruker, og veien dens til registeret |
| Nedlasting inne i containeren som kjører | Inndataene applikasjonen støtter i den containeren |
| Java-testen kobler seg til Docker eller applikasjonen | Java-klienten som etablerer den forbindelsen |
For det andre tilfellet legger du 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 tillates å bruke et offentlig HTTP-endepunkt, fyller du inn 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 tilgjengelig fra containeren: 127.0.0.1 peker på seg selv.
For det første tilfellet må du finne Docker-miljøet som Testcontainers faktisk bruker. En ekstern daemon eller Docker Desktop kan hente oppsettet 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.