5

为了减少 docker 容器中的重复工作,我想在 docker 容器中运行管道步骤,并使用可用的 Jenkins 工具安装。

这种天真的尝试不起作用 -npm未找到

pipeline {
  agent { dockerfile true }
  tools { nodejs 'LTS' }
  stages {
    stage('NPM') {
      steps { sh 'npm install-ci-test' }
    }
  }
}

这可能吗?

4

1 回答 1

1

您可以通过在构建代理上安装 Jenkins 文件夹来配置 docker 容器时使其可用。

pipeline {
   agent {
      docker {
         ....
        // Make tools folder available in docker (some slaves use mnt while other uses storage)
        args '-v /mnt/Jenkins_MCU:/mnt/Jenkins_MCU -v /storage/Jenkins_MCU:/storage/Jenkins_MCU' 
        ...
      }
....
stage(...){
    environment {
        myToolHome = tool 'MyTool'
    }
    steps {
        ...
        sh "${myToolHome}/path/to/binary arguments" 
....

我不确定如何在构建代理上获取 jenkins 的位置路径,因此在此示例中它是硬编码的。但它使该工具在 docker 映像中可用。

于 2020-01-28T10:57:04.567 回答