Jenkins kontejneri: prenošenje Maven proxy postavki tajnom datotekom
Povežite Jenkins tajnu datoteku i proslijedite njezinu vidljivu putanju u kontejneru za mvn -s radi proxy konfiguracije builda.
Proxy Maven repozitorija pripada u njegov settings.xml. Kada se Jenkins build već izvršava unutar Maven kontejnera, dostavite tu datoteku Maven procesu koji tamo radi.
Sačuvajte potpuni predviđeni settings.xml kao Jenkins Secret file akreditive imena maven-proxy-settings. Unutar koraka postojeće faze kontejnera:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
Povezivanje daje privremenu putanju datoteke. Groovy niz u jednostrukim navodnicima prepušta proširenje varijabli shellu, a dvostruki navodnici shella čuvaju putanju kao jedan argument. Maven opcija -s odabire tu datoteku kao korisničke postavke; -B odabire batch način.
Datoteka akreditive može sadržavati proxy host, port, autentifikaciju i nonProxyHosts builda u svojoj proxies sekciji, zajedno s ostalim potrebnim korisničkim postavkama. Lista zaobilaženja proxyja u Mavenu koristi okomite crte između uzoraka hosta.
Datoteka mora postojati tamo gdje Maven radi
S Docker Pipelineom agent i kontejner trebaju kompatibilan montirani datotečni sustav kako bi povezana putanja bila čitljiva unutar izvršnog kontejnera. Ručno pokrenut docker run zahtijeva izričito montiranje datoteke, po mogućnosti samo za čitanje, a Maven mora primiti putanju s kontejnerske strane. Prijenos host putanje samo kao varijable okoline ne čini datoteku dostupnom.
Zadržite svaku promjenu radnog direktorija unutar bloka povezivanja akreditiva kako tajna datoteka ne bi dospjela u pregledni poddirektorij radnog prostora. Ne ispisujte datoteku u log builda i ne kopirajte je u trajnu sliku.
Ovo odabire korisničke postavke. Mavenove globalne postavke također mogu sudjelovati, pa pregledajte oboje ako naslijeđeno zrcalo ili druga konfiguracija i dalje utječe na razrješavanje.