Как вы предоставляете управляемый файл для сборки Jenkins с помощью docker.image?

Я пытаюсь использовать Jenkins Pipelines для создания проекта Maven Java и развертывания его артефактов в Nexus. Учетными данными Nexus управляет Jenkins, поэтому мне нужно, чтобы Jenkins предоставил файл Maven settings.xml. Мой конвейер использует docker для запуска сборки. Мой Jenkinsfile выглядит так:

node('docker') {
   git '[email protected]:myorg/myproject.git'

   stage 'Build and Test' 
   // This throws: java.lang.UnsupportedOperationException: Refusing to marshal org.codehaus.groovy.runtime.InvokerInvocationException for security reasons
    //configFileProvider([configFile(fileId: '7d6efcd2-ff3d-43dc-be40-898dab2bff64', variable: 'MYSETTINGS')]) {
    //    sh 'cp ${MYSETTINGS} mysettings.xml'
    // }

    docker.image('maven:3.3.9').inside {
        // sh 'mvn -s mysettings.xml -U -e clean deploy'
        // This fails trying to access AWS ECR (???)
        withMaven(mavenSettingsConfig: '7d6efcd2-ff3d-43dc-be40-898dab2bff64') {
            sh 'mvn -U -e clean deploy'
    }
}

Пока я не могу предоставить правильные настройки maven. В withMaven есть некоторые «ограничения по знанию» (плагин Maven Pipeline, https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Maven+Plugin)

Есть ли обходной путь? Я пытался использовать configFileProvider, но он выдает исключение UnsupportedOperationException из соображений безопасности.


person cerebrotecnologico    schedule 12.12.2016    source источник
comment
знаете ли вы о шаге сборки withCredentials? support.cloudbees.com/hc/en-us/articles/ Это поможет вам получить доступ к учетным данным в конвейере. Не уверен, решит ли это вашу проблему.   -  person Michael Lihs    schedule 03.01.2017