一 : 先手动部署

1):将代码提交到github远程仓库

2):在远程服务器(如阿里云)下载github 远程仓库

3):启动运行

1.在宝塔面板打开终端

2.有个公钥是 id_rsa.pub

//输入下面语句打开公钥代码
cat id_rsa.pub

 

3. 然后打开github,Settings--->SSH and GPG keys

4. 把复制好的公钥粘贴到

5. 这样我就把服务器里的 公钥复制到 github里面了

同样你的本地电脑,也有一个公钥,也复制到github里面去,因为要做自动化部署,是先把本地的项目包,git push 到github里面去,然后再在宝塔git clone...github的项目包

6. 比如我已经把本地仓库 提交的github仓库, 复制ssh链接

 7. 然后在宝塔终端 比如我的文件路径是 /root/www/wwwroot/下 使用 git clone .....

 8. 完成后 要进入该文件夹里面安装依赖,在服务器端 只需要安装生态依赖就可以

cd 项目目录

npm i --production

npm start

9. 由于我的后端项目是egg框架,我的7001端口被占用了,我在安全组增加了7002

然后在package.json加上端口号

 

10. 前提条件是我已经配置好了mysql数据信息

npm start是正常启动的

11. 还要设置反向代理

二:重点来了: 自动部署

 如果需要更新:1 先在本地开发好后,2.提交更新到远程仓库 3.在远程服务器拉取更新,重新启动服务器,如果下面不会的话, 只能自己在服务器项目上 执行git pull了,再安装依赖 启动....

1. 如果, 自动部署

2.  由于我本地的数据库配置 和 线上服务器的数据库配置不一样

导致我要隐藏掉 config 文件夹 和 database下的config.json

 

3. username 是root password服务器的密码,这里应该不是宝塔面板的密码吧

host 是ip 地址 port一般是22吧

4.  其中我加了 private_key 是密钥, 是从宝塔里面的ssh密码 复制到github里面, 用来服务器和github做配对 ,有人说这里不用配置?

 

5.  同样进入到输入:cat id_rsa,把下面复制粘贴到

 

 6. 最后进入项目的github里面的nodejs.yml

文件的代码如下:

# .github/workflows/nodejs.yml
name: Node.js CI

on:
  push:
    branches: [ master ]

jobs:
  build:
    runs-on: ${{ matrix.os }}

    strategy:
      fail-fast: false
      matrix:
        node-version: [10]
        os: [ubuntu-latest]

    steps:
    - name: deploy
      uses: appleboy/ssh-action@master
      env: 
        # # 私钥
        SSH_PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
        # # scp参数
        # AGRS: "-avzr --delete"
        # # 服务器ip 
        # REMOTE_HOSR: "000.000.00.000"
        # # 用户
        # REMOTE_USER: "root"
      with:
        host: ${{ secrets.HOST }} #"000.000.00.000"
        username: ${{ secrets.USERNAME }} #"root"
        # KEY: ${{ secrets.PRIVATE_KEY }}
        password: ${{ secrets.PASSWORD }} # "xxxxx"
        port: ${{ secrets.PORT }} # 22
        envs: SSH_PRIVATE_KEY
        script: |
          export NVM_DIR="$HOME/.nvm"
          [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
          [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
          cd /www/wwwroot/cartire-api
          git pull origin master
          npm install --production
          npm run stop
          npm run start

 大概意思是进入服务器项目目录文件,这里要留意下 改成自己的

 7. 以上到了这里 我 花了半天时间,从git push到github远程仓库,配置数据库到项目文件,端口号被占用,到设置反向代理,再到自动化部署。还是失败了

比如:在本地这个步骤是可以push到远程仓库,但是服务器的项目代码没有改变

8.  打开 github里的 actions

 继续点击

报的错误如下

到了这步 就不知道怎么回事了

/usr/bin/docker run --name e571bb7d9e0ab4cc58***639b3dc23cd34_b60707 --label 72882e --workdir /github/workspace --rm -e SSH_PRIVATE_KEY -e INPUT_HOST -e INPUT_USERNAME -e INPUT_PASSWORD -e INPUT_PORT -e INPUT_ENVS -e INPUT_SCRIPT -e INPUT_PASSPHRASE -e INPUT_SYNC -e INPUT_USE_INSECURE_CIPHER -e INPUT_CIPHER -e INPUT_TIMEOUT -e INPUT_COMMAND_TIMEOUT -e INPUT_KEY -e INPUT_KEY_PATH -e INPUT_FINGERPRINT -e INPUT_PROXY_HOST -e INPUT_PROXY_PORT -e INPUT_PROXY_USERNAME -e INPUT_PROXY_PASSWORD -e INPUT_PROXY_PASSPHRASE -e INPUT_PROXY_TIMEOUT -e INPUT_PROXY_KEY -e INPUT_PROXY_KEY_PATH -e INPUT_PROXY_FINGERPRINT -e INPUT_PROXY_CIPHER -e INPUT_PROXY_USE_INSECURE_CIPHER -e INPUT_SCRIPT_STOP -e INPUT_DEBUG -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_RUN_ATTEMPT -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_REF_NAME -e GITHUB_REF_PROTECTED -e GITHUB_REF_TYPE -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e GITHUB_STEP_SUMMARY -e RUNNER_OS -e RUNNER_ARCH -e RUNNER_NAME -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/cartire-api/cartire-api":"/github/workspace" 72882e:571bb7d9e0ab4cc58***639b3dc23cd34

问题我这里都没有使用到 docker啊。

我宝塔环境是, 不知道是不是 我删了pm2,

 

其实我已经安装了Node.js ,没有必要用pm2了吧

 

有懂的大佬,望指点一二

Logo

一站式 AI 云服务平台

更多推荐