为了减少Docker容器中的重复工作,我想在Docker容器中以及使用Jenkins工具安装时都运行管道步骤。
这种幼稚的尝试不起作用-找不到npm
pipeline {
agent { dockerfile true }
tools { nodejs 'LTS' }
stages {
stage('NPM') {
steps { sh 'npm install-ci-test' }
}
}
}
这可能吗?
答案 0 :(得分: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映像中可用。