【问题标题】:how to config Jenkins container run maven container to use a proxy如何配置 Jenkins 容器运行 maven 容器以使用代理
【发布时间】:2020-04-05 10:09:22
【问题描述】:

所有, 当我尝试使用 Jenkins 构建-a-java-app-with-maven (https://jenkins.io/doc/tutorials/build-a-java-app-with-maven/)。 我有一个问题,我的环境访问网络必须使用私有代理。
我的 Jenkins 在容器中运行,当我使用下面的管道时,Jenkins 容器将拉取 maven 映像并在容器中运行 maven 但由于环境有代理,maven 容器未配置为使用代理,所以 maven 无法下载依赖关系。

谁能帮助我如何让 maven 容器使用代理?谢谢

pipeline {
    agent {
        docker {
            image 'maven:3-alpine' 
            args '-v /root/.m2:/root/.m2' 
        }
    }
    stages {
        stage('Build') { 
            steps {
                sh 'mvn -B -DskipTests clean package' 
            }
        }
    }
}

【问题讨论】:

    标签: docker maven jenkins


    【解决方案1】:
    【解决方案2】:

    首先:要在 Maven 中使用企业代理,您需要在 settings.xml 中配置它(请参阅 Maven 文档中的 Configuring a proxy)。

    第二:在容器中运行的管道中,您可以通过多种方式执行此操作。以下是其中的一些:

    1. 鉴于您正在映射/root/.m2:/root/.m2,您可以简单地将您的settings.xml 放入/root/.m2。这假设您以 root 的身份执行 Jenkins,出于安全原因,我在生产中强烈反对这样做。

      如果您以不同的用户身份执行 Jenkins,则必须相应地调整卷映射。

    2. 将您的 settings.xml 文件映射为容器中的卷并告诉 Maven 使用它,如下所示:

    pipeline {
      agent {
        docker {
          image 'maven:3-alpine' 
          args '-v /root/.m2:/root/.m2 -v /path/to/settings.xml:/my/settings.xml:ro' 
        }
      }
      stages {
        stage('Build') { 
          steps {
            sh 'mvn -s /my/settings.xml -B -DskipTests clean package' 
          }
        }
      }
    }
    
    1. settings.xml 文件作为凭证存储在Jenkins 中,并与withCredentials 一起使用,如果您的settings.xml 包含密码,这将是有意义的:
      ...
      steps {
        withCredentials([
          file(credentialsId: 'maven-settings', variable: 'MAVEN_SETTINGS')
        ]) {
          sh 'mvn -s $MAVEN_SETTINGS -B -DskipTests clean package'
        }
      }
      ...
    
    1. 不要使用官方 Maven 映像 maven:3-alpine,而是构建一个包含您的 settings.xml 文件的自定义映像并在您的管道中使用它。

    【讨论】:

      猜你喜欢
      • 2018-05-29
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      • 2021-09-30
      • 2021-12-08
      • 1970-01-01
      相关资源
      最近更新 更多