117.info
人生若只如初见

Nodejs 在 Ubuntu 上如何实现自动化部署

在 Ubuntu 上实现 Node.js 的自动化部署可以通过多种工具和方法来完成,下面将详细介绍如何使用 GitHub Actions 来实现前端项目的自动化部署。

1. 项目准备

  • 代码托管:确保你的项目代码已经托管在 GitHub 上。
  • GitHub Pages:如果你打算将项目部署到 GitHub Pages,确保你有一个 GitHub Pages 站点,或者准备部署到自己的服务器。

2. 创建 GitHub Actions 工作流

在你的项目根目录下创建一个 .github/workflows 文件夹,然后在其中创建一个 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: Set up Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '18'  # 你可以根据需要选择合适的 Node.js 版本

    - 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  # Vite 默认构建输出目录

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: Set up 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 需要指向这个路径。

5. 常见问题与优化

  • 环境变量:可以在 GitHub Secret 中配置环境变量。
  • 处理构建产物:确保构建产物(如 dist 目录)正确生成并上传。
  • 日志记录:查看 GitHub Actions 的运行日志,以便调试和优化部署流程。

通过上述步骤,你可以实现 Node.js 项目的自动化部署,提高开发效率和部署的可靠性。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe4c6AzsKCAFQBlc.html

推荐文章

  • ubuntu minimal如何安装打印机驱动

    在Ubuntu Minimal系统中安装打印机驱动可以通过以下步骤完成:
    通过CUPS安装打印机驱动 安装CUPS:
    打开终端,运行以下命令来安装CUPS(Common Unix P...

  • Python版本如何在Ubuntu切换

    在Ubuntu系统中,你可以通过以下步骤轻松地在不同版本的Python之间切换: 打开终端(快捷键:Ctrl + Alt + T) 首先,更新软件包列表以确保你可以获取到所有可用...

  • 如何在Ubuntu上安装MinIO

    在Ubuntu上安装MinIO的步骤如下:
    安装步骤 下载MinIO
    打开终端,执行以下命令下载MinIO的二进制文件:
    wget https://dl.min.io/server/minio/re...

  • Ubuntu Apache2 SSL证书安装教程

    在Ubuntu上为Apache2安装SSL证书的步骤如下:
    1. 安装Apache2和SSL模块
    首先,确保你的系统是最新的,然后安装Apache2和SSL模块:
    sudo apt upda...

  • Tomcat日志中的连接数异常怎么破

    当Tomcat日志中出现连接数异常时,通常表示Tomcat服务器在处理连接时遇到了问题。以下是一些可能的原因和解决方法:
    可能的原因 网络连接问题:如中提到,网...

  • ubuntu mysql如何配置防火墙规则

    在Ubuntu系统中,配置MySQL防火墙规则通常涉及使用ufw(Uncomplicated Firewall)或iptables。以下是使用这两种方法的步骤:
    使用 ufw 配置防火墙规则 启用...

  • CentOS系统Python安装方法

    在CentOS系统上安装Python可以通过多种方法实现,包括使用包管理器、源码编译等。以下是几种常见的安装方法:
    使用yum包管理器安装Python
    这是最简单的...

  • 如何使用Linux命令行进行文件备份

    在Linux命令行中进行文件备份有多种方法,以下是一些常用的命令和方法:
    1. 使用 cp 命令
    cp 命令是最基本的文件复制命令,可以用来备份文件。
    c...