无法通过詹金斯管道启动 pm2
Unable to start pm2 via jenkins pipeline
在 Windows 机器上,我在 Jenkins 中设置了一个非常简单的管道,它执行以下操作:
克隆一个 git 存储库,
安装软件包,
运行 应用程序通过“pm2 启动命令”
下面是整个流水线脚本:
node {
stage('dev'){
git credentialsId: 'my-credentials', url: 'git@myurl.git'
bat 'npm install'
bat 'pm2 start src\index.js --name myapp'
}
}
除 运行 执行 pm2 命令外,一切正常。输出错误说:
'pm2' 不被识别为内部或外部命令,
可运行的程序或批处理文件。
但是,我可以通过 CMD 轻松 运行 完全相同的 PM2 命令,我尝试将最后一行命令放入 .bat 文件并让 jenkins 执行它,得到同样的错误。
Jenkins 无法访问全局安装在 Windows 机器上的 PM2
,这是因为 Jenkin 运行 是系统(root)用户,而pm2 是 运行 本地用户。我必须在项目的 package.config 文件中包含 PM2
,然后从 node_module 文件夹中调用它。
\node_modules\.bin\pm2 start src\index.js --name myapp
在 Windows 机器上,我在 Jenkins 中设置了一个非常简单的管道,它执行以下操作:
克隆一个 git 存储库,
安装软件包,
运行 应用程序通过“pm2 启动命令”
下面是整个流水线脚本:
node {
stage('dev'){
git credentialsId: 'my-credentials', url: 'git@myurl.git'
bat 'npm install'
bat 'pm2 start src\index.js --name myapp'
}
}
除 运行 执行 pm2 命令外,一切正常。输出错误说:
'pm2' 不被识别为内部或外部命令, 可运行的程序或批处理文件。
但是,我可以通过 CMD 轻松 运行 完全相同的 PM2 命令,我尝试将最后一行命令放入 .bat 文件并让 jenkins 执行它,得到同样的错误。
Jenkins 无法访问全局安装在 Windows 机器上的 PM2
,这是因为 Jenkin 运行 是系统(root)用户,而pm2 是 运行 本地用户。我必须在项目的 package.config 文件中包含 PM2
,然后从 node_module 文件夹中调用它。
\node_modules\.bin\pm2 start src\index.js --name myapp