2017-09-13 41 views
0

我使用的是詹金斯管道下载我的代码,并建立它的官方maven的容器内詹金斯使用泊坞窗构建maven的图像不能访问到的Nexus

pipeline { 
    agent none 
    stages { 
      stage('Back-end build') { 
      agent { 
       docker { 
        image 'maven' 
        label 'master'  
       } 
      } 
      steps { 
       sh 'mvn -f de.vitasystems.qrcode.generator/pom.xml -s /usr/share/maven/ref/settings.xml clean package' 
       stash includes: 'target/*.war', name: 'app' 
       } 
      } 
     } 
    } 

这样做,我意识到我需要的设置后。用于nexus存储库配置的xml和settings-security.xml以允许下载它。 后来我这样做:

  1. 我创造了另一个Dockerfile使用maven的一个(FROM行家) ,并将其复制所必需的文件和Setting.xml的在 以前的管道被使用。
  2. 它指的是正确的库,但它没有被授权下载文件

添加是必要的,以便能够从我的Nexus(Maven的关系密码)下载数据的安全性的settings.xml但我不能引用它或使用它。

如何在此容器中使用security-settings.xml? Maven文档说,我把文件放在$ HOME/.m2文件夹中,但它不起作用。 此致敬礼。

回答

0

我已经找到了解决办法,设置安全没有使用,直到你与root用户。 我做一个Dockerfile创建一个新的泊坞窗的图像,总结:

FROM maven 
COPY settings.xml /root/.m2/settings.xml 
COPY settings-security.xml root/.m2/settings-security.xml 

ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"] 
CMD ["mvn"] 

此图片将总结会在安全性配置,但对于能够在你需要运行使用根容器中jenkinsfile使用用户。 示例

agent { 
    docker { 
     image 'maven' 
     label 'master' 
     args '-u root' 
      } 
1

尝试使用配置文件提供插件,他会从主settings.xml中复制到您的工作空间

stage('Build') 
      { 
       steps { 
       configFileProvider(
         [configFile(fileId: 'your-id-xxx', variable: 'MAVEN_SETTINGS')]) { 
        sh 'mvn -s $MAVEN_SETTINGS clean install -P integration-tests' 
       } 
+0

谢谢您的信息,但我找到了解决方案,现在我将解释。 – Guel135