Contenidors de Jenkins: passar la configuració de proxy de Maven amb un fitxer secret
Enllaceu un fitxer secret de Jenkins i passeu-ne el camí visible al contenidor a mvn -s per a la configuració de proxy de la compilació.
El proxy del repositori de Maven pertany al seu settings.xml. Quan una compilació de Jenkins ja s'executa dins d'un contenidor de Maven, proporcioneu aquest fitxer al procés de Maven que hi treballa.
Desa el settings.xml complet previst com a credencial Jenkins Secret file amb el nom maven-proxy-settings. Dins dels passos de l'etapa de contenidor existent:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
L'enllaç proporciona un camí de fitxer temporal. La cadena Groovy amb cometes simples deixa l'expansió de variables al shell, i les cometes dobles del shell conserven el camí com un sol argument. L'opció -s de Maven selecciona aquest fitxer com a configuració d'usuari; -B selecciona el mode per lots.
El fitxer de credencial pot contenir l'amfitrió, el port, l'autenticació i els nonProxyHosts del proxy de la compilació a la seva secció proxies, juntament amb qualsevol altra configuració d'usuari necessària. Una llista d'exclusió de proxy a Maven fa servir barres verticals entre patrons d'amfitrió.
El fitxer ha d'existir on s'executa Maven
Amb Docker Pipeline, l'agent i el contenidor necessiten un sistema de fitxers muntat compatible perquè el camí enllaçat sigui llegible dins del contenidor d'execució. Un docker run llançat manualment necessita un muntatge de fitxer explícit, preferiblement de només lectura, i Maven ha de rebre el camí del costat del contenidor. Passar un camí de l'amfitrió només com a variable d'entorn no fa disponible el fitxer.
Mantingueu qualsevol canvi de directori de treball dins del bloc d'enllaç de credencials perquè el fitxer secret no quedi en un espai de treball de subdirectori navegable. No imprimiu el fitxer al registre de la compilació ni el copieu en una imatge persistent.
Això selecciona la configuració d'usuari. La configuració global de Maven també hi pot participar, així que reviseu totes dues si un mirall heretat o una altra configuració continua afectant la resolució.