Conteneurs Jenkins : transmettre les paramètres de proxy Maven avec un fichier secret
Liez un fichier secret Jenkins et transmettez son chemin visible dans le conteneur à mvn -s pour la configuration proxy de la compilation.
Le proxy du dépôt Maven appartient à son settings.xml. Lorsqu'une compilation Jenkins s'exécute déjà dans un conteneur Maven, fournissez ce fichier au processus Maven qui y tourne.
Enregistrez le settings.xml complet prévu comme identifiant Jenkins Secret file nommé maven-proxy-settings. Dans les étapes de l'étape de conteneur existante :
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
La liaison fournit un chemin de fichier temporaire. La chaîne Groovy en guillemets simples laisse l'expansion des variables au shell, et les guillemets doubles du shell conservent le chemin comme un seul argument. L'option -s de Maven sélectionne ce fichier comme paramètres utilisateur ; -B sélectionne le mode batch.
Le fichier d'identifiants peut contenir l'hôte, le port, l'authentification et les nonProxyHosts du proxy de la compilation dans sa section proxies, ainsi que tout autre paramètre utilisateur nécessaire. Une liste de contournement de proxy dans Maven utilise des barres verticales entre les motifs d'hôte.
Le fichier doit exister là où Maven s'exécute
Avec Docker Pipeline, l'agent et le conteneur ont besoin d'un système de fichiers monté compatible pour que le chemin lié soit lisible dans le conteneur d'exécution. Un docker run lancé manuellement nécessite un montage de fichier explicite, de préférence en lecture seule, et Maven doit recevoir le chemin côté conteneur. Transmettre un chemin de l'hôte uniquement comme variable d'environnement ne rend pas le fichier disponible.
Gardez tout changement de répertoire de travail à l'intérieur du bloc de liaison des identifiants afin que le fichier secret ne soit pas placé dans un sous-répertoire navigable de l'espace de travail. N'imprimez pas le fichier dans le journal de compilation et ne le copiez pas dans une image persistante.
Ceci sélectionne les paramètres utilisateur. Les paramètres globaux de Maven peuvent encore intervenir, alors vérifiez les deux si un miroir hérité ou une autre configuration continue d'affecter la résolution.