რატომ Testcontainers withEnv გამოსახულების ჩამოტვირთვას პროქსით არ გადამისამართებს
კონფიგურაცია მოახდინეთ Docker-ის დემონისთვის წარუმატებელი ჩამოტვირთვისთვის; კონტეინერის პროქსი ცვლადები პროგრამებამდე მხოლოდ კონტეინერის შექმნის შემდეგ აღწევს.
თუ Testcontainers გამოსახულების ჩამოტვირთვისას ვერ ასრულებს, მომავალი კონტეინერის withEnv პარამეტრები ვერ დაეხმარება. ამ ჩამოტვირთვას რეესტრიდან Docker-ის დემონი ასრულებს კონტეინერის არსებობამდე.
| წარუმატებელი ოპერაცია | შესამოწმებელი პროქსი კონფიგურაცია |
|---|---|
| გამოსახულების ჩამოტვირთვა | Docker-ის დემონი, რომელსაც ტესტი იყენებს, და მისი მარშრუტი რეესტრამდე |
| ჩამოტვირთვა მოქმედი კონტეინერის შიგნით | აპლიკაციის მხარდაჭერილი შეყვანები ამ კონტეინერში |
| Java ტესტი უკავშირდება Docker-ს ან აპლიკაციას | Java კლიენტი, რომელიც ამ კავშირს ქმნის |
მეორე შემთხვევისთვის, დაამატეთ გარემოს ცვლადები არსებულ GenericContainer განსაზღვრებას:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");თუ კონტეინერის შიგნით ჩამოტვირთვას ნებადართული აქვს საჯარო HTTP ბოლო წერტილის გამოყენება, შეავსეთ ეს მნიშვნელობები HTTP პროქსიების სიიდან. გამოსახულებაში არსებულმა პროგრამამ ეს ცვლადები უნდა წაიკითხოს. ისინი თვითნებურ მონაცემთა ბაზის სოკეტს HTTP პროქსი ტრაფიკად არ აქცევს. ბოლო წერტილი კონტეინერიდანაც უნდა იყოს მისაწვდომი: მისი 127.0.0.1 თავის თავზე მიუთითებს.
პირველი შემთხვევისთვის, იპოვეთ Docker გარემო, რომელსაც Testcontainers რეალურად იყენებს. დისტანციური დემონი ან Docker Desktop შეიძლება კონფიგურაცია ლოკალური dockerd-ისგან განსხვავებული წყაროდან აიღოს. ფართო პროქსი ნაგულისხმევის დამატებისას შეინარჩუნეთ ლოკალური ტესტ სერვისები და Docker API მათ განკუთვნილ მარშრუტებზე.