Контейнери на 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 с единични кавички оставя разгръщането на променливите на shell, а двойните кавички на shell запазват пътя като един аргумент. Опцията -s на Maven избира този файл като потребителски настройки; -B избира пакетен режим.
Файлът с идентификационни данни може да съдържа хоста, порта, удостоверяването и nonProxyHosts на проксито в секцията proxies, заедно с други необходими потребителски настройки. Списъкът за заобикаляне на прокси в Maven използва вертикални черти между шаблоните за хост.
Файлът трябва да съществува там, където работи Maven
С Docker Pipeline агентът и контейнерът се нуждаят от съвместима монтирана файлова система, за да е четим свързаният път вътре в контейнера за изпълнение. Ръчно стартиран docker run изисква явно монтиране на файл, за предпочитане само за четене, и Maven трябва да получи пътя от страната на контейнера. Подаването на път от хоста само като променлива на средата не прави файла достъпен.
Дръжте всяка смяна на работната директория вътре в блока за свързване, за да не попадне тайният файл в разглеждаемо поддиректорно работно пространство. Не отпечатвайте файла в лога на билда и не го копирайте в постоянен образ.
Това избира потребителски настройки. Глобалните настройки на Maven също могат да участват, затова прегледайте и двете, ако наследено огледало или друга конфигурация продължава да влияе на разрешаването.