Waarom Testcontainers withEnv image-pulls niet via een proxy laat lopen
Configureer de Docker-daemon voor een mislukte pull; proxyvariabelen in de container bereiken programma's pas nadat de container is gemaakt.
Als Testcontainers mislukt tijdens het ophalen van een image, kunnen de withEnv-instellingen van de toekomstige container niet helpen. De Docker-daemon doet die download uit het register voordat de container bestaat.
| Mislukte bewerking | Te controleren proxyconfiguratie |
|---|---|
| Image-pull | De Docker-daemon die de test gebruikt en zijn route naar het register |
| Download in de draaiende container | De invoer die de toepassing in die container ondersteunt |
| De Java-test verbindt met Docker of de toepassing | De Java-client die die verbinding maakt |
Voeg voor het tweede geval omgevingsvariabelen toe aan de bestaande GenericContainer-definitie:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Als een download in de container een openbaar HTTP-eindpunt mag gebruiken, vul die waarden dan in uit de HTTP-proxylijst. Het programma in de image moet die variabelen lezen. Ze maken van een willekeurige databasesocket geen HTTP-proxyverkeer. Het eindpunt moet ook bereikbaar zijn vanuit de container: het 127.0.0.1 ervan verwijst naar zichzelf.
Zoek voor het eerste geval de Docker-omgeving die Testcontainers echt gebruikt. Een externe daemon of Docker Desktop kan de configuratie uit een andere bron halen dan een lokale dockerd. Houd lokale testdiensten en de Docker-API op hun bedoelde routes wanneer je een brede proxy-standaard toevoegt.