ለምን 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 ራሱን ያመለክታል።
ለመጀመሪያው ጉዳይ፣ Testcontainers በትክክል የሚጠቀመውን የDocker አካባቢ ይፈልጉ። ሩቅ ዴሞን ወይም Docker Desktop ከአገር በቀል dockerd የተለየ ምንጭ ቅንብር ሊወስድ ይችላል። ሰፊ የፕሮክሲ ነባሪ ሲጨምሩ የአገር ቤት የሙከራ አገልግሎቶችን እና የDocker APIን በታሰበው መንገድ ያቆዩ።