Testcontainers withEnv İmaj Çekimini Neden Proxy Üzerinden Geçirmez
Başarısız bir çekim için Docker daemon'ını yapılandırın; kapsayıcının proxy değişkenleri programlara ancak kapsayıcı oluşturulduktan sonra ulaşır.
Testcontainers bir imajı çekerken başarısız olursa, oluşacak kapsayıcının withEnv ayarları yardımcı olamaz. O kayıt defteri indirmesini kapsayıcı var olmadan önce Docker daemon'ı yapar.
| Başarısız işlem | Denetlenecek proxy yapılandırması |
|---|---|
| İmaj çekimi | Testin kullandığı Docker daemon'ı ve kayıt defterine giden yolu |
| Çalışan kapsayıcı içindeki indirme | Uygulamanın o kapsayıcıda desteklediği girdiler |
| Java testi Docker'a veya uygulamaya bağlanır | Bu bağlantıyı kuran Java istemcisi |
İkinci durum için mevcut GenericContainer tanımına ortam değişkenleri ekleyin:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Kapsayıcı içindeki bir indirimin herkese açık bir HTTP uç noktası kullanmasına izin veriliyorsa, bu değerleri HTTP proxy listesinden doldurun. İmajdaki program bu değişkenleri okumalıdır. Bunlar rastgele bir veritabanı soketini HTTP proxy trafiğine dönüştürmez. Uç nokta kapsayıcıdan da erişilebilir olmalıdır: 127.0.0.1 kendisine işaret eder.
İlk durum için Testcontainers'ın gerçekte kullandığı Docker ortamını bulun. Uzak bir daemon veya Docker Desktop yapılandırmayı yerel dockerd dışında bir kaynaktan alabilir. Geniş bir proxy varsayılanı eklerken yerel test hizmetlerini ve Docker API'sini amaçlanan yollarında tutun.