我正在尝试通过ssh从github将nodejs应用程序部署到远程ubuntu服务器。这是我的main.yml:
name: Node Github CI
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Node Js
uses: actions/setup-node@v1
- name: SSH and deploy node app
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SERVER_KEY }}
script: |
service myservice stop
cd leancrm-backend
git pull git://myuser@github.com/mycmp/myapp-backend.git master
npm install
service myservice start
运行此命令时,出现此错误:
======CMD======
service myservice stop
cd myapp-backend
git pull git://myuser@github.com/mycmp/myapp-backend.git master
npm install
service myservice start
======END======
err: fatal: Unable to look up myuser@github.com (port 9418) (Name or service not known)
err: bash: line 3: npm: command not found
==============================================
答案 0 :(得分:1)
您的第一步
name: Node Js
uses: actions/setup-node@v1
在GitHub构建运行器上设置Node.js。但是,您的第二步...
name: SSH and deploy node app
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SERVER_KEY }}
script: |
service myservice stop
cd leancrm-backend
git pull git://myuser@github.com/mycmp/myapp-backend.git master
npm install
service myservice start
... SSH到您的服务器,然后运行脚本说明那里。您还尝试在此处签出您的源代码回购。
您可能想做的是在GitHub构建运行器上查看您的回购...
- name: Checkout repo
uses: actions/checkout@v2
..然后在此处运行npm install
,然后将scp
的输出发送到您的服务器,最后ssh
到该计算机并重新启动服务。
答案 1 :(得分:1)
由于您已连接到服务器,所以我假设您已经在此存储库,因此只需要执行git pull。
还应该在脚本的开头添加以下行:
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
我的yml文件结尾看起来像这样:
script: |
git pull
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
npm install
npm run start_server
答案 2 :(得分:1)
npm:找不到命令
原因:
服务器node环境我使用nvm,nvm不会在/usr/local/bin/目录下安装node环境,导致sudo找不到对应的指令,最后创建软连接解决
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node" sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm" sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/pm2" "/usr/local/bin/pm2"
你可以测试“sudo npm -v”
https://blog.csdn.net/weixin_40599109/article/details/110825357
答案 3 :(得分:0)
检查是否在远程ubuntu上安装了 npm 。
npm 也需要安装在远程服务器上以进行部署。
答案 4 :(得分:0)
原因:
服务器node环境我使用nvm,nvm不会在/usr/local/bin/目录下安装node环境,导致sudo找不到对应的指令,最后创建软连接解决
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/pm2" "/usr/local/bin/pm2"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/yarn" "/usr/local/bin/yarn"
你可以测试“sudo npm -v”