De ce Testcontainers withEnv nu direcționează descărcarea imaginilor prin proxy
Configurați demonul Docker pentru o descărcare eșuată; variabilele proxy din container ajung la programe abia după crearea containerului.
Dacă Testcontainers eșuează la descărcarea unei imagini, setările withEnv ale viitorului container nu pot ajuta. Demonul Docker face acea descărcare din registru înainte ca containerul să existe.
| Operațiune eșuată | Configurație proxy de verificat |
|---|---|
| Descărcarea imaginii | Demonul Docker folosit de test și ruta lui către registru |
| Descărcare în interiorul containerului care rulează | Intrările acceptate de aplicație în acel container |
| Testul Java se conectează la Docker sau la aplicație | Clientul Java care face acea conexiune |
Pentru al doilea caz, adăugați variabile de mediu la definiția GenericContainer existentă:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Dacă o descărcare din interiorul containerului are voie să folosească un endpoint HTTP public, completați acele valori din lista de proxy HTTP. Programul din imagine trebuie să citească acele variabile. Ele nu transformă un socket oarecare de bază de date în trafic proxy HTTP. Endpointul trebuie să fie accesibil și din container: 127.0.0.1 al acestuia se referă la el însuși.
Pentru primul caz, găsiți mediul Docker pe care Testcontainers îl folosește de fapt. Un demon la distanță sau Docker Desktop poate prelua configurația dintr-o altă sursă decât un dockerd local. Păstrați serviciile de test locale și API-ul Docker pe rutele prevăzute atunci când adăugați un proxy implicit larg.