Dlaczego Testcontainers withEnv nie kieruje pobierania obrazów przez proxy
Skonfiguruj demona Dockera pod nieudane pobieranie; zmienne proxy kontenera docierają do programów dopiero po utworzeniu kontenera.
Jeśli Testcontainers zawiedzie podczas pobierania obrazu, ustawienia withEnv przyszłego kontenera nie pomogą. To demon Dockera wykonuje to pobieranie z rejestru, zanim kontener istnieje.
| Nieudana operacja | Konfiguracja proxy do sprawdzenia |
|---|---|
| Pobieranie obrazu | Demon Dockera używany przez test oraz jego trasa do rejestru |
| Pobieranie wewnątrz działającego kontenera | Dane wejściowe obsługiwane przez aplikację w tym kontenerze |
| Test Java łączy się z Dockerem lub aplikacją | Klient Java, który nawiązuje to połączenie |
W drugim przypadku dodaj zmienne środowiskowe do istniejącej definicji GenericContainer:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Jeśli pobieranie wewnątrz kontenera może korzystać z publicznego punktu końcowego HTTP, uzupełnij te wartości z listy proxy HTTP. Program w obrazie musi odczytywać te zmienne. Nie zamieniają one dowolnego gniazda bazy danych w ruch proxy HTTP. Punkt końcowy musi być też osiągalny z kontenera: jego 127.0.0.1 wskazuje na niego samego.
W pierwszym przypadku znajdź środowisko Dockera, którego Testcontainers naprawdę używa. Zdalny demon lub Docker Desktop mogą brać konfigurację z innego źródła niż lokalny dockerd. Zachowaj lokalne usługi testowe i API Dockera na ich zamierzonych trasach, dodając szerokie domyślne proxy.