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-ის გლობალური პარამეტრებიც შეიძლება მონაწილეობდეს, ამიტომ გადახედეთ ორივეს, თუ მემკვიდრეობით მიღებული სარკე ან სხვა კონფიგურაცია კვლავ გავლენას ახდენს გადაწყვეტაზე.