linux

Node.js如何在Linux上实现自动化部署

小樊
42
2025-08-21 15:59:16
栏目: 编程语言

在Linux上使用Node.js实现自动化部署可以通过多种方式来完成,以下是一个基本的步骤指南,涵盖了从代码准备到部署的全过程:

1. 准备工作

2. 编写代码

在项目目录中编写你的Node.js应用程序。例如,创建一个简单的app.js文件:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`App listening at http://localhost:${port}`);
});

3. 配置Git仓库

如果你还没有使用Git进行版本控制,可以初始化一个Git仓库并添加远程仓库地址。

git init
git add .
git commit -m "Initial commit"
git remote add origin <your-repository-url>

4. 设置CI/CD工具

你可以使用多种CI/CD工具来实现自动化部署,例如Jenkins、GitLab CI、GitHub Actions等。这里以GitHub Actions为例。

创建GitHub Actions工作流

在项目根目录下创建一个.github/workflows目录,并在其中创建一个YAML文件(例如deploy.yml):

name: Deploy Node.js App

on:
  push:
    branches:
      - main

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: '14'

    - name: Install dependencies
      run: npm install

    - name: Build and test
      run: |
        npm run build
        npm test

    - name: Deploy to server
      run: |
        ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} 'bash -s' < deploy_script.sh

创建部署脚本

在项目根目录下创建一个deploy_script.sh文件,用于在远程服务器上执行部署操作:

#!/bin/bash

# Navigate to the deployment directory
cd /path/to/deployment/directory

# Pull the latest code
git pull origin main

# Install dependencies
npm install

# Build the project
npm run build

# Restart the Node.js application
pm2 restart my-node-app

确保deploy_script.sh文件具有可执行权限:

chmod +x deploy_script.sh

5. 配置SSH密钥

为了安全地连接到远程服务器,你需要配置SSH密钥。将你的公钥添加到远程服务器的~/.ssh/authorized_keys文件中,并在GitHub Secrets中添加以下内容:

6. 触发部署

每次你向main分支推送代码时,GitHub Actions工作流将自动触发,并执行部署脚本,将你的Node.js应用程序部署到远程服务器。

通过以上步骤,你就可以在Linux上实现Node.js应用程序的自动化部署。根据具体需求,你可以进一步优化和扩展这个流程。

0
看了该问题的人还看了