کانتینرهای Jenkins: انتقال تنظیمات پروکسی Maven با یک فایل محرمانه
یک فایل محرمانهٔ Jenkins را متصل کنید و مسیر قابلمشاهدهٔ آن در کانتینر را به mvn -s برای پیکربندی پروکسی بیلد بدهید.
پروکسی مخزن Maven به settings.xml آن تعلق دارد. وقتی یک بیلد Jenkins از قبل داخل کانتینر Maven اجرا میشود، آن فایل را به فرایند Maven که همانجا اجرا میشود بدهید.
کل settings.xml موردنظر را بهعنوان اعتبارنامهٔ Jenkins Secret file با نام maven-proxy-settings ذخیره کنید. درون گامهای مرحلهٔ کانتینر موجود:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
اتصال یک مسیر فایل موقت فراهم میکند. رشتهٔ Groovy با گیومهٔ تک، بسط متغیرها را به shell میسپارد و گیومهٔ دوتایی shell مسیر را بهعنوان یک آرگومان نگه میدارد. گزینهٔ -s در Maven آن فایل را بهعنوان تنظیمات کاربر انتخاب میکند؛ -B حالت دستهای را انتخاب میکند.
فایل اعتبارنامه میتواند میزبان، درگاه، احراز هویت و nonProxyHosts پروکسی بیلد را در بخش proxies خود داشته باشد، همراه با هر تنظیمات کاربر دیگر که لازم است. فهرست عبور از پروکسی در Maven از میلههای عمودی میان الگوهای میزبان استفاده میکند.
فایل باید همانجا باشد که Maven اجرا میشود
با Docker Pipeline، عامل و کانتینر به یک سیستم فایل نصبشدهٔ سازگار نیاز دارند تا مسیر متصل درون کانتینر اجرا خواندنی باشد. یک docker run که دستی اجرا میشود به نصب صریح فایل نیاز دارد، ترجیحاً فقطخواندنی، و Maven باید مسیر سمت کانتینر را دریافت کند. عبور دادن مسیر میزبان فقط بهصورت متغیر محیطی فایل را در دسترس قرار نمیدهد.
هر تغییر پوشهٔ کاری را داخل بلوک اتصال اعتبارنامه نگه دارید تا فایل محرمانه در فضای کاری زیرپوشهٔ قابلمرور قرار نگیرد. فایل را در گزارش بیلد چاپ نکنید و آن را به ایمیج ماندگار کپی نکنید.
این تنظیمات کاربر را انتخاب میکند. تنظیمات سراسری Maven هم میتواند مشارکت کند، پس اگر آینهٔ ارثی یا پیکربندی دیگری همچنان بر حل وابستگی اثر میگذارد هر دو را بررسی کنید.