在Ubuntu上进行Node.js持续集成与部署,可借助Jenkins、GitLab CI/CD等工具,以下是具体步骤:
安装Node.js和npm
sudo apt update
sudo apt install nodejs npm
# 验证安装
node -v && npm -v
安装构建工具
sudo npm install -g pm2
sudo apt install docker.io
sudo systemctl enable --now docker
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
npm install。npm test(需提前配置测试框架如Jest)。dist目录或Docker镜像。sudo apt install gitlab-runner
sudo gitlab-runner register --url https://gitlab.com --token <YOUR_TOKEN> --executor shell
.gitlab-ci.ymlstages:
  - 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
直接部署到服务器
dist目录或Docker镜像)传输到服务器,执行pm2 restart重启应用。stage('Deploy') {
  steps {
    sh 'scp -r dist/* user@server:/var/www/app'
    sh 'ssh user@server "cd /var/www/app && pm2 restart app"'
  }
}
容器化部署(Docker)
Dockerfile:FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]
.env文件或CI/CD工具配置数据库连接等敏感信息。参考资料: