为了减少 docker 容器中的重复工作,我想在 docker 容器中运行管道步骤,并使用可用的 Jenkins 工具安装。
这种天真的尝试不起作用 -npm
未找到
pipeline {
agent { dockerfile true }
tools { nodejs 'LTS' }
stages {
stage('NPM') {
steps { sh 'npm install-ci-test' }
}
}
}
这可能吗?
为了减少 docker 容器中的重复工作,我想在 docker 容器中运行管道步骤,并使用可用的 Jenkins 工具安装。
这种天真的尝试不起作用 -npm
未找到
pipeline {
agent { dockerfile true }
tools { nodejs 'LTS' }
stages {
stage('NPM') {
steps { sh 'npm install-ci-test' }
}
}
}
这可能吗?
您可以通过在构建代理上安装 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 映像中可用。