Containere Jenkins: transmiterea setărilor de proxy Maven cu un fișier secret
Leagă un fișier secret Jenkins și transmite calea lui vizibilă în container către mvn -s pentru configurația de proxy a buildului.
Proxy-ul depozitului Maven aparține fișierului său settings.xml. Când un build Jenkins rulează deja într-un container Maven, furnizează acel fișier procesului Maven care rulează acolo.
Salvează settings.xml complet dorit ca acreditare Jenkins Secret file cu numele maven-proxy-settings. În pașii etapei de container existente:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
Legarea furnizează o cale temporară de fișier. Șirul Groovy cu ghilimele simple lasă extinderea variabilelor în seama shell-ului, iar ghilimelele duble ale shell-ului păstrează calea ca un singur argument. Opțiunea -s a Maven selectează acel fișier ca setări de utilizator; -B selectează modul batch.
Fișierul de acreditare poate conține gazda, portul, autentificarea și nonProxyHosts ale proxy-ului buildului în secțiunea proxies, împreună cu orice alte setări de utilizator necesare. O listă de ocolire a proxy-ului în Maven folosește bare verticale între modelele de gazdă.
Fișierul trebuie să existe acolo unde rulează Maven
Cu Docker Pipeline, agentul și containerul au nevoie de un sistem de fișiere montat compatibil pentru ca calea legată să fie lizibilă în containerul de execuție. Un docker run lansat manual necesită o montare explicită a fișierului, de preferință doar pentru citire, iar Maven trebuie să primească calea din partea containerului. Transmiterea unei căi de pe gazdă doar ca variabilă de mediu nu face fișierul disponibil.
Păstrează orice schimbare a directorului de lucru în blocul de legare a acreditării, astfel încât fișierul secret să nu ajungă într-un spațiu de lucru de subdirector navigabil. Nu tipări fișierul în jurnalul buildului și nu îl copia într-o imagine persistentă.
Aceasta selectează setările de utilizator. Setările globale ale Maven pot participa în continuare, așa că verifică-le pe amândouă dacă o oglindă moștenită sau altă configurație afectează în continuare rezolvarea.