Contedores de Jenkins: pasar a configuración de proxy de Maven cun ficheiro secreto
Vincule un ficheiro secreto de Jenkins e pase a súa ruta visible no contedor a mvn -s para a configuración de proxy da compilación.
O proxy do repositorio de Maven pertence ao seu settings.xml. Cando unha compilación de Jenkins xa se executa dentro dun contedor de Maven, forneza ese ficheiro ao proceso de Maven que se executa alí.
Garde o settings.xml completo previsto como credencial Jenkins Secret file co nome maven-proxy-settings. Dentro dos pasos da etapa de contedor existente:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
A vinculación fornece unha ruta de ficheiro temporal. A cadea Groovy entre comiñas simples deixa a expansión de variables ao shell, e as comiñas dobres do shell conservan a ruta como un só argumento. A opción -s de Maven selecciona ese ficheiro como a súa configuración de usuario; -B selecciona o modo por lotes.
O ficheiro de credencial pode conter o host, o porto, a autenticación e os nonProxyHosts do proxy da compilación na súa sección proxies, xunto con calquera outra configuración de usuario necesaria. Unha lista de omisión de proxy en Maven usa barras verticais entre patróns de host.
O ficheiro debe existir onde se executa Maven
Con Docker Pipeline, o axente e o contedor necesitan un sistema de ficheiros montado compatible para que a ruta vinculada sexa lexible dentro do contedor de execución. Un docker run lanzado manualmente necesita unha montaxe de ficheiro explícita, preferiblemente de só lectura, e Maven debe recibir a ruta do lado do contedor. Pasar unha ruta do host só como variable de contorno non fai que o ficheiro estea dispoñible.
Manteña calquera cambio de directorio de traballo dentro do bloque de vinculación de credenciais para que o ficheiro secreto non quede nun espazo de traballo de subdirectorio navegable. Non imprima o ficheiro no rexistro da compilación nin o copie a unha imaxe persistente.
Isto selecciona a configuración de usuario. A configuración global de Maven tamén pode participar, así que revise ambas se un espello herdado ou outra configuración segue afectando a resolución.