Mengapa Testcontainers withEnv Tidak Memproksikan Penarikan Image
Konfigurasikan daemon Docker untuk penarikan yang gagal; variabel proksi kontainer baru mencapai program setelah kontainer dibuat.
Jika Testcontainers gagal saat menarik image, pengaturan withEnv kontainer yang akan datang tidak dapat membantu. Daemon Docker-lah yang melakukan pengunduhan dari registri itu sebelum kontainer ada.
| Operasi yang gagal | Konfigurasi proksi yang perlu diperiksa |
|---|---|
| Penarikan image | Daemon Docker yang dipakai pengujian dan rute registrinya |
| Pengunduhan di dalam kontainer yang berjalan | Input yang didukung aplikasi di kontainer itu |
| Pengujian Java terhubung ke Docker atau aplikasi | Klien Java yang membuat koneksi itu |
Untuk kasus kedua, tambahkan variabel lingkungan ke definisi GenericContainer yang sudah ada:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Jika pengunduhan di dalam kontainer boleh memakai endpoint HTTP publik, isi nilai itu dari daftar proksi HTTP. Program di dalam image harus membaca variabel tersebut. Variabel itu tidak mengubah soket basis data sembarang menjadi lalu lintas proksi HTTP. Endpoint juga harus dapat dijangkau dari kontainer: 127.0.0.1-nya merujuk ke dirinya sendiri.
Untuk kasus pertama, temukan lingkungan Docker yang benar-benar dipakai Testcontainers. Daemon jarak jauh atau Docker Desktop dapat mengambil konfigurasi dari sumber yang berbeda dari dockerd lokal. Jaga layanan pengujian lokal dan API Docker pada rute yang dimaksudkan saat menambahkan proksi default yang luas.