بناء صور Spring Boot: تهيئة وسيط بناء Paketo
مرّر متغيرات الوسيط إلى وسيط بناء Paketo عبر Gradle bootBuildImage أو Maven image.env، منفصلة عن أداة البناء وعن خفير Docker.
قد تحل أداة البناء تبعياتها بنجاح بينما لا تستطيع حزمة بناء Paketo تنزيل بيئة تشغيل. تعمل الحزمة داخل حاوية البناء وتحتاج إلى مدخلات وسيط خاصة بها.
مهمة bootBuildImage في Gradle
في ملف Groovy باسم build.gradle تستخدم مهمة bootBuildImage الموجودة في Spring Boot:
tasks.named("bootBuildImage") {
environment["HTTP_PROXY"] = "http://proxy.example:8080"
environment["HTTPS_PROXY"] = "http://proxy.example:8080"
}
إضافة Maven تستخدم image.env
بالنسبة إلى spring-boot:build-image، ضع هذه القيم تحت image.env في تهيئة إضافة Spring Boot Maven الموجودة:
<configuration>
<image>
<env>
<HTTP_PROXY>http://proxy.example:8080</HTTP_PROXY>
<HTTPS_PROXY>http://proxy.example:8080</HTTPS_PROXY>
</env>
</image>
</configuration>
كل من بيئة مهمة Gradle و image.env في Maven يزوّدان وسيط البناء بالقيم. يمكن أن يشير الاسمان إلى الوسيط HTTP العادي نفسه، بما في ذلك عناوين URL الخاصة بمخرجات HTTPS. ولتنزيلات المخرجات العامة المسموح بها عبر وسطاء عامة، توفّر قائمة وسطاء HTTP مرشحين لقيم البناء هذه.
هذا الإعداد مستقل عن خصائص systemProp.http.proxyHost في Gradle. تلك الخصائص تخص الـ JVM ولا تهيّئ تلقائياً عملية أخرى داخل وسيط البناء.
يجب أن يحصل خفير Docker أولاً على صور البناء والتشغيل المطلوبة. وفشل السجل في تلك المرحلة الأسبق يحتاج إلى مسار الخفير وتهيئة السجل، لا إلى متغير يُسلَّم إلى حزمة بناء لم تبدأ بعد.
استخدم نقطة نهاية وسيط يمكن الوصول إليها من حاوية البناء. عنوان الاسترجاع الخاص بها يعرّف تلك الحاوية، وليس بالضرورة محطة عمل المطوّر.
أبقِ بيئة تشغيل التطبيق النهائي مدروسة أيضاً. فالوصول وقت البناء والمسار المستخدم عند تشغيل التطبيق لاحقاً قراران منفصلان في التهيئة.