Ubuntu上Node.js如何进行持续集成与部署
在Ubuntu上进行Node.js持续集成与部署,可借助Jenkins、GitLab CI/CD等工具,以下是具体步骤:
一、基础环境准备
-
安装Node.js和npm
sudo apt update sudo apt install nodejs npm # 验证安装 node -v && npm -v
-
安装构建工具
- PM2:用于进程管理
sudo npm install -g pm2
- Docker(可选,用于容器化部署)
sudo apt install docker.io sudo systemctl enable --now docker
- PM2:用于进程管理
二、配置持续集成(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
--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)
-
直接部署到服务器
- 通过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"' } }
- 通过SSH将构建产物(如
-
容器化部署(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工具的日志功能排查问题。
参考资料:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权请联系我们,一经查实立即删除!