Contenedores de Jenkins: pasar la configuración de proxy de Maven con un archivo secreto
Vincule un archivo secreto de Jenkins y pase su ruta visible en el contenedor a mvn -s para la configuración de proxy de la compilación.
El proxy del repositorio de Maven pertenece a su settings.xml. Cuando una compilación de Jenkins ya se ejecuta dentro de un contenedor de Maven, entregue ese archivo al proceso de Maven que se ejecuta allí.
Guarde el settings.xml completo previsto como credencial Jenkins Secret file con el nombre maven-proxy-settings. Dentro de los pasos de la etapa de contenedor existente:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
La vinculación proporciona una ruta de archivo temporal. La cadena Groovy entre comillas simples deja la expansión de variables al shell, y las comillas dobles del shell conservan la ruta como un solo argumento. La opción -s de Maven selecciona ese archivo como su configuración de usuario; -B selecciona el modo por lotes.
El archivo de credencial puede contener el host, el puerto, la autenticación y los nonProxyHosts del proxy de la compilación en su sección proxies, junto con cualquier otra configuración de usuario necesaria. Una lista de omisión de proxy en Maven usa barras verticales entre patrones de host.
El archivo debe existir donde se ejecuta Maven
Con Docker Pipeline, el agente y el contenedor necesitan un sistema de archivos montado compatible para que la ruta vinculada sea legible dentro del contenedor de ejecución. Un docker run lanzado manualmente necesita un montaje de archivo explícito, preferiblemente de solo lectura, y Maven debe recibir la ruta del lado del contenedor. Pasar una ruta del host solo como variable de entorno no hace que el archivo esté disponible.
Mantenga cualquier cambio de directorio de trabajo dentro del bloque de vinculación de credenciales para que el archivo secreto no quede en un espacio de trabajo de subdirectorio navegable. No imprima el archivo en el registro de la compilación ni lo copie a una imagen persistente.
Esto selecciona la configuración de usuario. La configuración global de Maven también puede participar, así que revise ambas si un espejo heredado u otra configuración sigue afectando la resolución.