Bakit Hindi Nagpo-proxy ang Testcontainers withEnv ng Pag-pull ng Imahe
I-configure ang Docker daemon para sa nabigong pull; ang mga proxy variable ng container ay nakakarating sa mga program pagkatapos lamang malikha ang container.
Kung mabigo ang Testcontainers habang nag-pull ng imahe, hindi makakatulong ang withEnv na setting ng susunod na container. Ang Docker daemon ang gumagawa ng download na iyon mula sa registry bago pa umiral ang container.
| Nabigong operasyon | Proxy configuration na dapat suriin |
|---|---|
| Pag-pull ng imahe | Ang Docker daemon na ginagamit ng test at ang ruta nito sa registry |
| Download sa loob ng tumatakbong container | Ang mga input na sinusuportahan ng app sa container na iyon |
| Kumokonekta ang Java test sa Docker o sa app | Ang Java client na gumagawa ng koneksyong iyon |
Para sa pangalawang kaso, magdagdag ng mga environment variable sa umiiral na depinisyon ng GenericContainer:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Kung pinapayagan ang download sa loob ng container na gumamit ng pampublikong HTTP endpoint, punan ang mga value na iyon mula sa listahan ng HTTP proxy. Dapat basahin ng program sa imahe ang mga variable na iyon. Hindi nila ginagawang HTTP proxy traffic ang anumang database socket. Dapat ding maabot ang endpoint mula sa container: ang 127.0.0.1 nito ay tumutukoy sa sarili nito.
Para sa unang kaso, hanapin ang Docker environment na aktuwal na ginagamit ng Testcontainers. Maaaring kumuha ng configuration ang remote daemon o Docker Desktop mula sa ibang source kaysa lokal na dockerd. Panatilihin ang mga lokal na test service at ang Docker API sa kanilang inilaan na ruta kapag nagdaragdag ng malawak na default na proxy.