Testcontainers withEnv သည် ပုံဆွဲယူမှုကို proxy ဖြင့် အဘယ်ကြောင့် မပို့သနည်း
မအောင်မြင်သော ဆွဲယူမှုအတွက် Docker daemon ကို ပြင်ဆင်ပါ။ container ၏ proxy ကိန်းရှင်များသည် container ဖန်တီးပြီးမှသာ ပရိုဂရမ်များထံ ရောက်သည်။
Testcontainers သည် ပုံတစ်ပုံ ဆွဲယူနေစဉ် မအောင်မြင်ပါက ဖြစ်လာမည့် container ၏ withEnv ဆက်တင်များက မကူညီနိုင်ပါ။ ထို registry မှ ဒေါင်းလုဒ်ကို container မတည်ရှိမီ Docker daemon က ဆောင်ရွက်သည်။
| မအောင်မြင်သော လုပ်ဆောင်ချက် | စစ်ဆေးရမည့် proxy ပြင်ဆင်မှု |
|---|---|
| ပုံဆွဲယူမှု | စမ်းသပ်မှု အသုံးပြုသော Docker daemon နှင့် ၎င်း၏ registry လမ်းကြောင်း |
| လည်ပတ်နေသော container အတွင်း ဒေါင်းလုဒ် | ထို container ထဲတွင် အက်ပ်က ပံ့ပိုးသော ထည့်သွင်းချက်များ |
| Java စမ်းသပ်မှုသည် Docker သို့မဟုတ် အက်ပ်နှင့် ချိတ်ဆက်သည် | ထို ချိတ်ဆက်မှုကို ပြုလုပ်သော Java client |
ဒုတိယအခြေအနေအတွက် လက်ရှိ GenericContainer အဓိပ္ပာယ်ဖွင့်ဆိုချက်တွင် ပတ်ဝန်းကျင် ကိန်းရှင်များ ထည့်ပါ။
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");container အတွင်း ဒေါင်းလုဒ်ကို အများသုံး HTTP endpoint အသုံးပြုခွင့်ပြုထားပါက ထို တန်ဖိုးများကို HTTP proxy စာရင်း မှ ဖြည့်ပါ။ ပုံထဲရှိ ပရိုဂရမ်က ထို ကိန်းရှင်များကို ဖတ်ရမည်။ ၎င်းတို့သည် မည်သည့် ဒေတာဘေ့စ် socket ကိုမျှ HTTP proxy traffic အဖြစ် မပြောင်းလဲပါ။ endpoint သည် container မှ လည်း ဆက်သွယ်နိုင်ရမည်။ ၎င်း၏ 127.0.0.1 သည် သူ့ကိုယ်သူ ညွှန်ပြသည်။
ပထမအခြေအနေအတွက် Testcontainers အမှန်တကယ် အသုံးပြုသော Docker ပတ်ဝန်းကျင်ကို ရှာပါ။ အဝေးမှ daemon သို့မဟုတ် Docker Desktop သည် ဒေသတွင်း dockerd နှင့် မတူသော ရင်းမြစ်မှ ပြင်ဆင်မှုကို ယူနိုင်သည်။ ကျယ်ပြန့်သော proxy မူလတန်ဖိုး ထည့်စဉ် ဒေသတွင်း စမ်းသပ်ဝန်ဆောင်မှုများနှင့် Docker API ကို ၎င်းတို့၏ ရည်ရွယ်ထားသော လမ်းကြောင်းများတွင် ထားပါ။