詹金斯:-bash:找不到命令

时间:2018-12-27 21:49:07

标签: jenkins

我正在尝试使用Jenkins构建我的Node.js应用程序,但出现此错误:

    -bash: npm: command not found
    -bash: pm2: command not found
    Build step 'Execute shell' marked build as failure
    Finished: FAILURE

我创建了一个部署文件,并将其添加到Jenkins的Execute shell中,它看起来像这样:

-#!/bin/sh
ssh ubuntu@development-server:ip <<EOF
    cd ~/nodeweb
    git pull
    npm install
    pm2 restart ecosystem.config.js
    exit
EOF

在开发服务器上,我已经安装了npm和pm2模块。

1 个答案:

答案 0 :(得分:0)

这是因为正常的 ssh 会话以非交互模式打开外壳,并且不提供 .bashrc 文件。

您的 npm 和 pm2 模块的 PATH 可以在 .bashrc 文件中配置,从而在您尝试通过非交互式 shell 执行 npm install 时抛出 not found 错误。

要使 ssh 使用交互模式,只需在 ssh 命令中使用 -i 标志。

#!/bin/sh
ssh ubuntu@development-server:ip 'bash -i' <<EOF
    cd ~/nodeweb
    git pull
    npm install
    pm2 restart ecosystem.config.js
    exit
EOF