溫馨提示×

ubuntu nodejs如何實現自動化部署

小樊
64
2025-03-16 05:33:36
欄目: 編程語言

在Ubuntu上實現Node.js的自動化部署可以通過多種方式實現,以下是使用GitHub Actions實現自動化部署的步驟:

1. 創建GitHub Actions工作流

在你的項目根目錄下創建一個.github/workflows文件夾,然后在該文件夾中創建一個deploy.yml文件。

2. 配置工作流文件

deploy.yml文件中配置以下內容:

name: Deploy to GitHub Pages

on:
  push:
    branches:
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v3

    - name: Install Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '18'

    - name: Install dependencies
      run: npm install

    - name: Build project
      run: npm run build

    - name: Deploy to GitHub Pages
      uses: JamesIves/github-pages-deploy-action@v4
      with:
        branch: gh-pages
        folder: dist

3. 啟用GitHub Pages

進入你的GitHub倉庫的Settings,在左側菜單選擇Pages,選擇gh-pages分支,點擊Save。等待GitHub Actions運行完畢,你的前端項目就會自動部署到https://你的用戶名.github.io/你的倉庫名/。

4. 部署到自己的服務器(Nginx + GitHub Actions)

如果你的前端項目需要部署到自己的服務器,可以使用SCP命令進行自動上傳。修改deploy.yml文件如下:

name: Deploy to Server

on:
  push:
    branches:
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v3

    - name: Install Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '18'

    - name: Install dependencies
      run: npm install

    - name: Build project
      run: npm run build

    - name: Deploy to server
      env:
        SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
        SERVER_USER: "your-user"
        SERVER_HOST: "your-server-ip"
        DEPLOY_PATH: "/var/www/html"
      run: |
        echo "$SSH_PRIVATE_KEY" > private_key.pem
        chmod 600 private_key.pem
        scp -o StrictHostKeyChecking=no -r dist/* $SERVER_USER@$SERVER_HOST:$DEPLOY_PATH

需要在GitHub Secrets配置SSH_PRIVATE_KEY,用于SSH免密登錄服務器。DEPLOY_PATH是你的服務器Web目錄,Nginx需要指向這個路徑。

以上步驟展示了如何在Ubuntu上使用GitHub Actions實現Node.js項目的自動化部署。根據具體需求,你可能還需要配置CI/CD工具、服務器環境、部署腳本等,以確保部署流程的順利進行。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女