Jenkins-containere: videresend Maven-proxyindstillinger med en hemmelig fil
Bind en hemmelig Jenkins-fil og send den synlige containerbanen til mvn -s for byggets proxykonfigurasjon.
Mavens depotproxy hører til i settings.xml-filen. Når et Jenkins-bygg allerede kjører i en Maven-container, gi den filen til Maven-prosessen som kjører der.
Lagre den fullstendige tiltenkte settings.xml som en Jenkins Secret file-legitimasjon med navnet maven-proxy-settings. Innenfor trinnene i den eksisterende containerfasen:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
Bindingen gir en midlertidig filbane. Groovy-strengen med enkle anførselstegn lar variabelekspansjonen gå til skallet, og skallets doble anførselstegn bevarer banen som ett argument. Mavens -s-alternativ velger den filen som brukerinnstillinger; -B velger batch-modus.
Legitimasjonsfilen kan inneholde byggets proxyvert, port, autentisering og nonProxyHosts i proxies-delen, sammen med andre nødvendige brukerinnstillinger. En proxy-omgåelsesliste i Maven bruker loddrette streker mellom vertsmønstre.
Filen må finnes der Maven kjører
Med Docker Pipeline trenger agenten og containeren et kompatibelt montert filsystem slik at den bundne banen er lesbar inne i kjørecontaineren. En docker run som startes manuelt trenger en eksplisitt filmontering, helst skrivebeskyttet, og Maven må motta banen på container-siden. Å sende en vertsbane bare som miljøvariabel gjør ikke filen tilgjengelig.
Hold enhver endring av arbeidskatalogen inne i legitimasjonsbindingsblokken slik at den hemmelige filen ikke havner under et gjennomsøkbart underkatalog-arbeidsområde. Ikke skriv filen ut i byggeloggen og ikke kopier den til et varig image.
Dette velger brukerinnstillinger. Mavens globale innstillinger kan fortsatt delta, så gjennomgå begge hvis et nedarvet speil eller en annen konfigurasjon fortsatt påvirker oppløsningen.