Spring Boot ပုံရိပ်တည်ဆောက်မှုများ− Paketo builder ၏ proxy ကို ပြင်ဆင်ခြင်း
Gradle bootBuildImage သို့မဟုတ် Maven image.env မှတစ်ဆင့် Paketo builder သို့ proxy ကိန်းရှင်များ ပေးပို့ပါ၊ build ကိရိယာနှင့် Docker daemon နှင့် သီးခြားစီ။
build ကိရိယာသည် ၎င်း၏ မှီခိုမှုများကို အောင်မြင်စွာ ဖြေရှင်းနိုင်သော်လည်း Paketo buildpack သည် runtime ကို ဒေါင်းလုဒ်လုပ်၍ မရပါ။ buildpack သည် builder ကွန်တိန်နာအတွင်း လုပ်ဆောင်ပြီး ၎င်း၏ကိုယ်ပိုင် proxy ထည့်သွင်းမှု လိုအပ်သည်။
Gradle ၏ bootBuildImage အလုပ်
Spring Boot ၏ လက်ရှိ bootBuildImage အလုပ်ပါသော Groovy build.gradle တွင်−
tasks.named("bootBuildImage") {
environment["HTTP_PROXY"] = "http://proxy.example:8080"
environment["HTTPS_PROXY"] = "http://proxy.example:8080"
}
Maven ပလပ်ဂင်သည် image.env ကို အသုံးပြုသည်
spring-boot:build-image အတွက် ဤတန်ဖိုးများကို လက်ရှိ Spring Boot Maven ပလပ်ဂင် ပြင်ဆင်မှုရှိ image.env အောက်တွင် ထားပါ−
<configuration>
<image>
<env>
<HTTP_PROXY>http://proxy.example:8080</HTTP_PROXY>
<HTTPS_PROXY>http://proxy.example:8080</HTTPS_PROXY>
</env>
</image>
</configuration>
Gradle ၏ အလုပ်စားပွဲ ပတ်ဝန်းကျင်နှင့် Maven ၏ image.env နှစ်ခုစလုံး builder သို့ တန်ဖိုးများ ပေးသည်။ အမည်နှစ်ခုစလုံးသည် တူညီသော သာမန် HTTP ကြားခံကို ရည်ညွှန်းနိုင်ပြီး HTTPS artefact URL များအတွက်လည်း ဖြစ်သည်။ အများသူငှာ proxy များမှတစ်ဆင့် ခွင့်ပြုထားသော အများသူငှာ artefact ဒေါင်းလုဒ်များအတွက် HTTP proxy စာရင်း သည် ဤ builder တန်ဖိုးများအတွက် ကိုယ်စားလှယ်လောင်းများ ပေးသည်။
ဤဆက်တင်သည် Gradle ၏ systemProp.http.proxyHost ဂုဏ်သတ္တိများနှင့် သီးခြားဖြစ်သည်။ ၎င်းတို့သည် JVM ပိုင်ဖြစ်ပြီး builder အတွင်းရှိ အခြားလုပ်ငန်းစဉ်ကို အလိုအလျောက် ပြင်ဆင်မပေးပါ။
Docker daemon သည် လိုအပ်သော builder နှင့် run ပုံရိပ်များကို ဦးစွာ ရယူရမည်။ ထိုအစောပိုင်း အဆင့်တွင် registry မအောင်မြင်ပါက daemon ၏ လမ်းကြောင်းနှင့် registry ပြင်ဆင်မှု လိုအပ်ပြီး မစတင်ရသေးသော buildpack သို့ ပေးသည့် ကိန်းရှင် မဟုတ်ပါ။
builder ကွန်တိန်နာမှ ရောက်ရှိနိုင်သော proxy အဆုံးမှတ်ကို အသုံးပြုပါ။ ၎င်း၏ loopback လိပ်စာသည် ထိုကွန်တိန်နာကို ဖော်ပြသည်၊ ဆော့ဖ်ဝဲရေးသားသူ၏ လုပ်ငန်းခွင် မဖြစ်မနေ မဟုတ်ပါ။
နောက်ဆုံး application ၏ run ပတ်ဝန်းကျင်ကိုလည်း ရည်ရွယ်ချက်ရှိရှိ ထိန်းသိမ်းပါ။ build အချိန် ဝင်ရောက်မှုနှင့် application နောက်ပိုင်း လည်ပတ်ချိန် အသုံးပြုသည့် လမ်းကြောင်းသည် သီးခြား ပြင်ဆင်မှု ဆုံးဖြတ်ချက် နှစ်ခု ဖြစ်သည်။