Jenkins konteineriai: Maven tarpinio serverio nustatymų perdavimas slaptu failu
Prisekite Jenkins slaptą failą ir perduokite jo matomą kelią konteineryje mvn -s, kad build'o tarpinio serverio konfigūracija veiktų.
Maven saugyklos tarpinis serveris priklauso jo settings.xml failui. Kai Jenkins build'as jau vykdomas Maven konteineryje, pateikite tą failą ten veikiančiam Maven procesui.
Išsaugokite visą numatytą settings.xml kaip Jenkins Secret file kredencialą pavadinimu maven-proxy-settings. Esamo konteinerio etapo žingsniuose:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
Susiejimas suteikia laikiną failo kelią. Groovy eilutė su viengubomis kabutėmis palieka kintamųjų išplėtimą shell'ui, o shell'o dvigubos kabutės išsaugo kelią kaip vieną argumentą. Maven parinktis -s pasirenka tą failą kaip naudotojo nustatymus; -B pasirenka paketinį režimą.
Kredencialų faile proxies skiltyje gali būti build'o tarpinio serverio mazgas, prievadas, autentifikacija ir nonProxyHosts kartu su kitais reikalingais naudotojo nustatymais. Maven tarpinio serverio apėjimo sąrašas naudoja vertikalias linijas tarp mazgų šablonų.
Failas turi egzistuoti ten, kur veikia Maven
Naudojant Docker Pipeline, agentui ir konteineriui reikia suderinamos prijungtos failų sistemos, kad susietas kelias būtų skaitomas vykdymo konteineryje. Rankiniu būdu paleistas docker run reikalauja aiškaus failo prijungimo, pageidautina tik skaitymo, o Maven turi gauti konteinerio pusės kelią. Vien mazgo kelio perdavimas kaip aplinkos kintamojo failo neprieinamu nepadaro.
Laikykite visus darbo katalogo pakeitimus kredencialų susiejimo bloke, kad slaptas failas nepatektų į peržiūrimą pakatalogio darbo erdvę. Nespausdinkite failo build'o žurnale ir nekopijuokite jo į nuolatinį image.
Tai pasirenka naudotojo nustatymus. Maven globalūs nustatymai taip pat gali dalyvauti, todėl peržiūrėkite abu, jei paveldėtas veidrodis ar kita konfigūracija vis dar veikia sprendimą.