我正在开发一个快速应用程序,并尝试使用 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/