Jenkins կոնտեյներներ. Maven-ի պրոքսի կարգավորումների փոխանցումը գաղտնի ֆայլով
Կապեք Jenkins-ի գաղտնի ֆայլը և փոխանցեք դրա տեսանելի ուղին կոնտեյներում mvn -s-ին՝ build-ի պրոքսի կարգավորումների համար։
Maven-ի պահոցի պրոքսին պատկանում է իր settings.xml-ին։ Երբ Jenkins-ի build-ն արդեն աշխատում է Maven կոնտեյներում, տվեք այդ ֆայլը այնտեղ աշխատող Maven գործընթացին։
Պահեք ամբողջ նախատեսված settings.xml-ը որպես maven-proxy-settings անունով Jenkins Secret file վավերատվություն։ Գոյություն ունեցող կոնտեյների փուլի քայլերի ներսում՝
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
Կապակցումը տալիս է ժամանակավոր ֆայլի ուղի։ Մեկ չակերտով Groovy տողը փոփոխականների ընդլայնումը թողնում է shell-ին, իսկ shell-ի կրկնակի չակերտները պահպանում են ուղին որպես մեկ արգումենտ։ Maven-ի -s ընտրանքը ընտրում է այդ ֆայլը որպես օգտվողի կարգավորումներ, -B-ն ընտրում է խմբաքանակային ռեժիմ։
Վավերատվության ֆայլը կարող է պարունակել build-ի պրոքսի հոսթը, պորտը, նույնականացումը և nonProxyHosts-ը իր proxies բաժնում՝ այլ անհրաժեշտ օգտվողական կարգավորումների հետ միասին։ Maven-ում պրոքսի շրջանցման ցանկն օգտագործում է ուղղահայաց գծեր հոսթերի ձևանմուշների միջև։
Ֆայլը պետք է գոյություն ունենա այնտեղ, որտեղ աշխատում է Maven-ը
Docker Pipeline-ի դեպքում գործակալն ու կոնտեյները պետք է ունենան համատեղելի միացված ֆայլային համակարգ, որպեսզի կապված ուղին ընթեռնելի լինի կատարման կոնտեյների ներսում։ Ձեռքով գործարկված docker run-ը պահանջում է ֆայլի բացահայտ միացում, ցանկալի է միայն կարդալու, և Maven-ը պետք է ստանա կոնտեյների կողմի ուղին։ Հոսթի ուղին միայն որպես միջավայրի փոփոխական փոխանցելը ֆայլը հասանելի չի դարձնում։
Աշխատանքային գրացուցակի ցանկացած փոփոխություն պահեք վավերատվության կապակցման բլոկի ներսում, որպեսզի գաղտնի ֆայլը չհայտնվի դիտարկվող ենթագրացուցակի աշխատանքային տարածքում։ Չտպեք ֆայլը build-ի մատյանում և չպատճենեք այն մշտական image-ում։
Սա ընտրում է օգտվողի կարգավորումները։ Maven-ի գլոբալ կարգավորումները նույնպես կարող են մասնակցել, ուստի ստուգեք երկուսն էլ, եթե ժառանգված հայելին կամ այլ կոնֆիգուրացիա շարունակում է ազդել լուծման վրա։