Mga container ng Jenkins: pagpasa ng mga setting ng proxy ng Maven gamit ang isang lihim na file
I-bind ang isang lihim na file ng Jenkins at ipasa ang nakikitang landas nito sa container sa mvn -s para sa proxy configuration ng build.
Ang proxy ng repositoryo ng Maven ay nasa settings.xml nito. Kapag ang isang build ng Jenkins ay tumatakbo na sa loob ng container ng Maven, ibigay ang file na iyon sa prosesong Maven na tumatakbo roon.
I-save ang buong inilaan na settings.xml bilang Jenkins Secret file na kredensyal na pinangalanang maven-proxy-settings. Sa loob ng mga hakbang ng umiiral na yugto ng container:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
Ang pag-bind ay nagbibigay ng pansamantalang landas ng file. Ang Groovy string na may iisang panipi ay nag-iiwan ng pagpapalawak ng variable sa shell, at pinapanatili ng dobleng panipi ng shell ang landas bilang isang argumento. Pinipili ng opsyon na -s ng Maven ang file na iyon bilang mga setting ng user; pinipili ng -B ang batch mode.
Ang file ng kredensyal ay maaaring maglaman ng host, port, authentication, at nonProxyHosts ng proxy ng build sa seksyong proxies, kasama ang anumang iba pang kailangang setting ng user. Ang listahan ng pag-iwas sa proxy sa Maven ay gumagamit ng patayong guhit sa pagitan ng mga pattern ng host.
Dapat umiral ang file kung saan tumatakbo ang Maven
Sa Docker Pipeline, kailangan ng agent at container ng tugmang naka-mount na filesystem upang mabasa ang nakataling landas sa loob ng container ng pagpapatupad. Ang docker run na mano-manong inilunsad ay nangangailangan ng tahasang pag-mount ng file, mas mabuti kung read-only, at dapat matanggap ng Maven ang landas sa panig ng container. Ang pagpasa ng landas ng host bilang environment variable lamang ay hindi ginagawang magagamit ang file.
Panatilihin ang anumang pagbabago ng working directory sa loob ng block ng pag-bind ng kredensyal upang ang lihim na file ay hindi mapunta sa nasusuriang subdirectory workspace. Huwag i-print ang file sa log ng build at huwag itong kopyahin sa permanenteng image.
Pinipili nito ang mga setting ng user. Maaari ring lumahok ang mga global na setting ng Maven, kaya suriin ang pareho kung ang namamana na salamin o ibang configuration ay patuloy na nakakaapekto sa resolution.