Waarom Testcontainers withEnv beeldtrekkings nie deur 'n instaanbediener stuur nie
Stel die Docker-daemon vir 'n mislukte trek op; die houer se instaanbedienerveranderlikes bereik programme eers nadat die houer geskep is.
As Testcontainers misluk terwyl 'n beeld getrek word, kan die toekomstige houer se withEnv-instellings nie help nie. Die Docker-daemon doen daardie registrasie-aflaai voordat die houer bestaan.
| Mislukte bewerking | Instaanbediener-konfigurasie om te ondersoek |
|---|---|
| Beeldtrek | Die Docker-daemon wat die toets gebruik en sy registrasieroete |
| Aflaai binne die lopende houer | Die toepassing se ondersteunde insette in daardie houer |
| Java-toets verbind met Docker of die toepassing | Die Java-kliënt wat daardie verbinding maak |
Vir die tweede geval, voeg omgewingsveranderlikes by die bestaande GenericContainer-definisie:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Vir 'n aflaai binne die houer wat 'n openbare HTTP-eindpunt mag gebruik, vul daardie waardes uit die HTTP-instaanbedienerlys. Die program in die beeld moet daardie veranderlikes lees. Hulle verander nie 'n willekeurige databasis-sok in HTTP-instaanbedienerverkeer nie. Die eindpunt moet ook van die houer af bereikbaar wees: sy 127.0.0.1 verwys na homself.
Vir die eerste geval, vind die Docker-omgewing wat Testcontainers werklik gebruik. 'n Afgeleë daemon of Docker Desktop kan konfigurasie uit 'n ander bron as 'n plaaslike dockerd neem. Hou plaaslike toetsdienste en die Docker-API op hul bedoelde roetes wanneer jy 'n breë instaanbediener-verstek byvoeg.