在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工具配置数据库连接等敏感信息。参考资料: