Kodėl Testcontainers withEnv neperduoda atvaizdų traukimo per tarpinį serverį
Sukonfigūruokite Docker tarnybą nepavykusiam traukimui; konteinerio tarpinio serverio kintamieji pasiekia programas tik po to, kai konteineris sukurtas.
Jei Testcontainers nepavyksta traukiant atvaizdą, būsimo konteinerio withEnv nustatymai negali padėti. Tą atsisiuntimą iš registro atlieka Docker tarnyba dar prieš sukuriant konteinerį.
| Nepavykusi operacija | Tikrinama tarpinio serverio konfigūracija |
|---|---|
| Atvaizdo traukimas | Docker tarnyba, kurią naudoja testas, ir jos maršrutas į registrą |
| Atsisiuntimas veikiančiame konteineryje | Programos palaikomi įvestys tame konteineryje |
| Java testas jungiasi prie Docker arba programos | Java klientas, kuris užmezga tą ryšį |
Antruoju atveju pridėkite aplinkos kintamuosius prie esamo GenericContainer apibrėžimo:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Jei atsisiuntimui konteineryje leidžiama naudoti viešą HTTP galinį tašką, užpildykite tas reikšmes iš HTTP tarpinių serverių sąrašo. Programa atvaizde turi nuskaityti tuos kintamuosius. Jie nepaverčia bet kokio duomenų bazės lizdo HTTP tarpinio serverio srautu. Galinis taškas taip pat turi būti pasiekiamas iš konteinerio: jo 127.0.0.1 nurodo jį patį.
Pirmuoju atveju raskite Docker aplinką, kurią Testcontainers iš tikrųjų naudoja. Nuotolinė tarnyba arba Docker Desktop gali imti konfigūraciją iš kito šaltinio nei vietinė dockerd. Pridėdami platų tarpinio serverio numatytąjį nustatymą, palikite vietines testavimo paslaugas ir Docker API numatytuose maršrutuose.