我正在开发一个快速应用程序,并尝试使用Jenkins在ec2上部署它。 我使用终端安装了nvm,并且运行正常。
在Jenkins中,我使用“通过SSH发行插件”以相同的用户将内部版本上传到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 /
答案 0 :(得分:0)
有人建议您在jenkins脚本中运行类似“ echo whoami”之类的内容,以确保您是当前用户。如果是这样,则可以更改用户(例如,如果以root用户身份运行)。 根据您的描述,在我看来,用户并不相同。
答案 1 :(得分:0)
Jenkins节点/代理/从属启动一个non-interactive shell,它跳过用户.bashrc,仅跳过系统(在/ etc中)配置文件。除了编辑系统默认值外,还有多种解决方法。
我们结合使用SSH Slaves Setup插件和EnvInject。
YMMV。
答案 2 :(得分:0)