Кантэйнеры Jenkins: перадача налад проксі Maven праз сакрэтны файл
Падключыце сакрэтны файл Jenkins і перадайце яго бачны шлях у кантэйнеры ў mvn -s для налад проксі зборкі.
Проксі рэпазіторыя Maven належыць у яго settings.xml. Калі зборка Jenkins ужо выконваецца ў кантэйнеры Maven, перадайце гэты файл працэсу Maven, які працуе там.
Захавайце поўны settings.xml як уліковыя даныя Jenkins Secret file з імем maven-proxy-settings. Унутры крокаў існуючай стадыі кантэйнера:
withCredentials([
file(credentialsId: 'maven-proxy-settings', variable: 'MAVEN_SETTINGS')
]) {
sh 'mvn -s "$MAVEN_SETTINGS" -B verify'
}
Прывязка дае часовы шлях да файла. Радок Groovy у адзінарных лапках пакідае разгортванне зменных абалонцы, а падвойныя лапкі абалонкі захоўваюць шлях як адзін аргумент. Параметр -s у Maven выбірае гэты файл як карыстальніцкія налады; -B выбірае пакетны рэжым.
Файл уліковых даных можа змяшчаць хост проксі, порт, аўтэнтыфікацыю і nonProxyHosts у раздзеле proxies, разам з іншымі патрэбнымі карыстальніцкімі наладамі. Спіс абыходу проксі ў Maven выкарыстоўвае вертыкальныя рыскі паміж шаблонамі хостаў.
Файл мусіць існаваць там, дзе працуе Maven
З Docker Pipeline агенту і кантэйнеру патрэбна сумяшчальная змантаваная файлавая сістэма, каб прывязаны шлях чытаўся ўнутры кантэйнера выканання. Запуск docker run уручную патрабуе яўнага мантавання файла, пераважна толькі для чытання, і Maven мусіць атрымаць шлях з боку кантэйнера. Перадача шляху хоста толькі як зменнай асяроддзя не робіць файл даступным.
Трымайце любую змену працоўнага каталога ўнутры блока прывязкі ўліковых даных, каб сакрэтны файл не апынуўся ў прагляданай падкаталогавай працоўнай прасторы. Не выводзьце файл у журнал зборкі і не капіюйце яго ў пастаянны вобраз.
Гэта выбірае карыстальніцкія налады. Глабальныя налады Maven таксама могуць удзельнічаць, таму праглядзіце абодва, калі ўспадкаванае люстэрка або іншая канфігурацыя працягвае ўплываць на развязанне.