[英]BitBucket pipeline shows npm: command not found
使用位桶 scp 管道将代码部署到我的服务器后,我使用另一个管道运行脚本来安装节点模块并启动节点服务器,但管道结果为失败状态并显示如下
./server-run.sh:第 1 行:npm:未找到命令 ./server-run.sh:第 2 行:pm2:未找到命令
以下是我的 yml 文件
image: node:10.15.3 pipelines: custom: test: - step: caches: - node script: # Modify the commands below to build your repository. - pipe: atlassian/scp-deploy:0.3.3 variables: USER: $USER SERVER: $SERVER REMOTE_PATH: '/var/www/stockTest/server' LOCAL_PATH: 'server/*' server-start: - step: caches: - node script: - ssh $USER@$SERVER "cd /var/www/stockTest/server && ./server-run.sh"
服务器运行.sh
npm i pm2 start server-start.js --name stockTest
因为没有安装pm2,所以你必须先安装pm2。
在执行 pm2 之前尝试
或者你可以给
我有完全相同的问题。 所以我对我的文件有这些命令:
whoami
which npm
哪个输出:
LifecycleEvent - ApplicationStart
Script - cicd/development/scripts/start_server.sh
[stdout]ec2-user
[stderr]which: no npm in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
所以它找不到npm
但不是因为它不是正确的用户,所以我做了一个:
$ which npm
~/.nvm/versions/node/v15.12.0/bin/npm
然后我明白了这是由于安装了npm。
所以我只是下载二进制文件并将其放入/usr/local/lib/nodejs
然后它就像一个魅力。
1> 在您的服务器终端运行 echo $PATH
这将在下面给出 /home/ubuntu/.nvm/versions/node/v16.5.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin :/bin:/usr/games:/usr/local/games:/snap/bin
2> 现在打开 nano /etc/environment 并将路径粘贴到那里,如下所示
PATH="/home/ubuntu/.nvm/versions/node/v16.5.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
这肯定会解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.