Spring Boot امیج بلڈز: Paketo بلڈر کا پراکسی ترتیب دیں
Gradle bootBuildImage یا Maven image.env کے ذریعے Paketo بلڈر کو پراکسی متغیرات بھیجیں، بلڈ ٹول اور Docker ڈیمن سے الگ۔
بلڈ ٹول اپنے انحصارات کامیابی سے حل کر سکتا ہے، تاہم Paketo بلڈ پیک رن ٹائم ڈاؤن لوڈ نہیں کر سکتا۔ بلڈ پیک بلڈر کنٹینر کے اندر چلتا ہے اور اسے اپنا پراکسی ان پٹ درکار ہوتا ہے۔
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 دونوں بلڈر کو اقدار دیتے ہیں۔ دونوں نام ایک ہی عام HTTP واسطے کی نشاندہی کر سکتے ہیں، HTTPS آرٹی فیکٹ URLs کے لیے بھی۔ عوامی پراکسیوں کے ذریعے اجازت شدہ عوامی آرٹی فیکٹ ڈاؤن لوڈز کے لیے HTTP پراکسی فہرست ان بلڈر اقدار کے لیے امیدوار فراہم کرتی ہے۔
یہ ترتیب Gradle کی systemProp.http.proxyHost خصوصیات سے آزاد ہے۔ وہ JVM سے تعلق رکھتی ہیں اور بلڈر میں کسی دوسرے عمل کو خودکار طور پر ترتیب نہیں دیتیں۔
Docker ڈیمن کو پہلے مطلوبہ بلڈر اور رن امیجز حاصل کرنے ہوں گے۔ اس ابتدائی مرحلے میں رجسٹری کی ناکامی کے لیے ڈیمن کا راستہ اور رجسٹری کنفیگریشن درکار ہے، نہ کہ ایسا متغیر جو ایسے بلڈ پیک کو دیا جائے جو ابھی شروع نہ ہوا ہو۔
بلڈر کنٹینر سے قابل رسائی پراکسی اینڈ پوائنٹ استعمال کریں۔ اس کا لوپ بیک پتہ اسی کنٹینر کی نشاندہی کرتا ہے، نہ کہ لازماً ڈویلپر کا ورک اسٹیشن۔
حتمی ایپلیکیشن کا رن ٹائم ماحول بھی سوچے سمجھے انداز میں رکھیں۔ بلڈ کے وقت رسائی اور ایپلیکیشن کے بعد چلنے پر استعمال ہونے والا راستہ دو الگ کنفیگریشن فیصلے ہیں۔