Контейнери 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 також можуть брати участь, тож перегляньте обидва, якщо успадковане дзеркало або інша конфігурація досі впливає на розв'язання.