ubuntu - 从 jenkins nvm 执行 SSH 命令时未找到

标签 ubuntu jenkins ssh jenkins-plugins nvm

我正在开发一个快速应用程序,并尝试使用 Jenkins 将其部署在 ec2 上。 我使用终端安装 nvm,它工作正常。

在 Jenkins 中,我使用 Publish Over SSH Plugin 以相同的用户 将构建上传到 ec2,但它在 npm install 命令上失败。

我检查了 .bashrc 并验证了 nvm 安装。

当我从 shell 运行 printenv 命令时,它在 PATH 中显示 nvm

PATH=/home/ubuntu/.nvm/versions/node/v12.13.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

但是当我从 Jenkins 作业中运行它时,它不存在

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games _=/usr/bin/

最佳答案

Jenkins 节点/代理/从属启动一个 non-interactive shell ,它会跳过用户 .bashrc,只跳过系统(在/etc 中)配置文件。除了编辑系统默认设置之外,还有各种解决方法。

我们使用 SSH Slaves Setup 的组合插件和 EnvInject .

YMMV.

关于ubuntu - 从 jenkins nvm 执行 SSH 命令时未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58888988/

相关文章:

Linux命令不起作用

ubuntu - 使用 grafonnet-lib 运行 jsonnet 时没有此类文件或目录错误

php - vagrant-shopware 建立数据库连接失败

javascript - 如何使用 NodeJS 在 SSH2 上执行多个命令

通过 SSH 代理主机的 git clone 问题

git - 无法从 github 提取更改 - 权限被拒绝(公钥)。致命: Could not read from remote repository

node.js - 不能在 Node 中说 Hello World

jenkins - 将数组和 ArrayList 追加到 ArrayList

angularjs - 将 Karma Runner 连接到 Jenkins CI

java - 如何跳过执行期间挂起/卡住的测试 Selenium - Maven - Jenkins