You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jenkins中为Ubuntu代理节点配置Node.js的PATH环境变量?

Jenkins代理节点Node.js PATH问题解决方法

问题回顾

Ubuntu 20.04的Jenkins代理节点本地执行node -v能返回v16.20.1,但流水线中直接调用node -v报错"node: not found",手动通过withEnv设置PATH时因路径错误未生效,还出现durable脚本文件为空的情况。

核心原因

  1. 之前的PATH配置错误:添加的是Node可执行文件的路径(/home/jenkins/.nvm/versions/node/v16.20.1/bin/node),而非包含node的目录路径。
  2. Jenkins代理启动的是非交互式非登录Shell,不会自动加载nvm的初始化脚本(比如.bashrc或.profile里的配置),导致全局PATH不包含node的目录。

解决方案

方案1:修正withEnv的PATH配置

将PATH改为Node所在的bin目录,而非具体可执行文件:

pipeline {
    agent {
        label 'ubuntu-server'
    }
    stages {
        stage('Hello World') {
            steps {
                withEnv(["PATH=/home/jenkins/.nvm/versions/node/v16.20.1/bin:$env.PATH"]) {
                    sh 'echo $PATH'
                    sh 'node -v'
                }
            }
        }
    }
}

方案2:在Jenkins代理节点配置全局环境变量

  1. 进入Jenkins管理页面 → 管理节点 → 选中ubuntu-server节点 → 点击"配置"
  2. 找到"节点属性",勾选"环境变量"
  3. 添加环境变量:
    • 键:PATH
    • 值:/home/jenkins/.nvm/versions/node/v16.20.1/bin:$PATH
  4. 保存配置后,重新运行流水线

方案3:在流水线中手动加载nvm配置

直接在Shell命令中加载nvm的初始化脚本,让nvm自动配置PATH:

pipeline {
    agent {
        label 'ubuntu-server'
    }
    stages {
        stage('Hello World') {
            steps {
                sh 'source /home/jenkins/.nvm/nvm.sh && node -v'
            }
        }
    }
}

关于durable脚本文件为空的问题

这个问题通常是Jenkins临时文件生成的偶发异常,修正PATH配置后重新运行流水线即可解决;如果仍出现,可重启Jenkins代理节点再试。

内容的提问来源于stack exchange,提问作者Diana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 10:02:45