温馨提示×

Ubuntu上Node.js如何进行持续集成与部署

小樊
53
2025-08-17 20:12:27
栏目: 编程语言

在Ubuntu上进行Node.js持续集成与部署,可借助Jenkins、GitLab CI/CD等工具,以下是具体步骤:

一、基础环境准备

  1. 安装Node.js和npm

    sudo apt update
    sudo apt install nodejs npm
    # 验证安装
    node -v && npm -v
    
  2. 安装构建工具

    • PM2:用于进程管理
      sudo npm install -g pm2
      
    • Docker(可选,用于容器化部署)
      sudo apt install docker.io
      sudo systemctl enable --now docker
      

二、配置持续集成(CI)

1. 使用Jenkins

  • 安装Jenkins
    wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
    echo "deb http://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list
    sudo apt update && sudo apt install jenkins
    sudo systemctl start jenkins
    
  • 配置Node.js插件
    在Jenkins管理界面安装“NodeJS”插件,并在“全局工具配置”中添加Node.js版本。
  • 创建构建任务
    • 拉取代码:通过Git插件拉取GitHub/码云仓库代码。
    • 安装依赖:执行npm install
    • 运行测试:执行npm test(需提前配置测试框架如Jest)。
    • 构建产物:生成dist目录或Docker镜像。

2. 使用GitLab CI/CD

  • 安装GitLab Runner
    sudo apt install gitlab-runner
    sudo gitlab-runner register --url https://gitlab.com --token <YOUR_TOKEN> --executor shell
    
  • 编写.gitlab-ci.yml
    stages:
      - build
      - test
      - deploy
    build:
      stage: build
      script:
        - npm install
        - npm run build
    test:
      stage: test
      script:
        - npm test
    deploy:
      stage: deploy
      script:
        - ssh user@server "cd /var/www/app && git pull && pm2 restart app"
      only:
        - main
    

三、配置持续部署(CD)

  1. 直接部署到服务器

    • 通过SSH将构建产物(如dist目录或Docker镜像)传输到服务器,执行pm2 restart重启应用。
    • 示例(Jenkins Pipeline):
      stage('Deploy') {
        steps {
          sh 'scp -r dist/* user@server:/var/www/app'
          sh 'ssh user@server "cd /var/www/app && pm2 restart app"'
        }
      }
      
  2. 容器化部署(Docker)

    • 编写Dockerfile
      FROM node:18-alpine
      WORKDIR /app
      COPY package*.json ./
      RUN npm install
      COPY . .
      CMD ["npm", "start"]
      
    • 构建并推送镜像至Docker Hub或私有仓库,再通过CI/CD工具拉取部署。

四、关键注意事项

  • 权限管理:确保服务器SSH密钥、Jenkins/GitLab凭证安全。
  • 环境变量:通过.env文件或CI/CD工具配置数据库连接等敏感信息。
  • 日志监控:利用PM2日志或CI/CD工具的日志功能排查问题。

参考资料:

0