首页 > 解决方案 > Jenkins-Publish over SSH 插件:在 npm 上出现错误

问题描述

我正在尝试使用 Jenkins 为我的 node.js 应用程序设置 CI/CD 管道。

我想要做的是通过jenkins登录到我的应用程序服务器,并在通过ssh插件发布的帮助下执行服务器上的命令(https://wiki.jenkins.io/display/JENKINS/Publish+Over+SSH+插件)。

我选择了该Send Files or Execute commands over SSH选项并在部分中添加了以下命令Exec command

cd <project-folder> && git pull origin master && npm install

我收到一个错误,npm not found但我尝试直接在服务器上没有错误。

所以我相信詹金斯存在许可问题,但我找不到解决方案

标签: node.jsjenkinsnpmjenkins-plugins

解决方案


是的,您正确识别了问题......它的权限问题..我假设您已经在 jenkins 的“配置系统”部分的“SSH 远程主机”中添加了 root 登录详细信息。

  • 首先通过 github 中的 web hook 设置将 GIT repo 拉到 jenkins 工作区。希望您也成功完成了这一步

在“构建环境”中选择“使用 ssh 在远程主机上执行 shell 脚本”,然后使用以下命令

cd <project-folder>  (Ex: cd /var/lib/jenkins/workspace/<project-folder>)

npm install 

注意:您应该在服务器中提供完整的服务器路径以避免权限.. 如果您使用的是 localhost,那么当您使用“使用 ssh 在远程主机上执行 shell 脚本”时它可能会起作用并且其他非常重要的,您应该通过 root 用户访问仅不使用 cpanel 帐户登录。这将避免权限问题。

安装 NPM 后,检查控制台日志是否“成功”然后执行其他命令并建议删除“npm install”,因为多次安装会增加应用程序编译时间。


推荐阅读