You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Azure DevOps为Node.js项目设置到Azure Linux虚拟机的持续部署

Azure DevOps 部署Node.js项目到Linux Azure VM 完整配置流程

前置准备

  • 目标Linux Azure VM已开放22端口(或自定义SSH端口),持有对应账号的SSH密钥/用户名密码
  • 已创建Azure DevOps项目,Node.js代码已上传至DevOps Repos
  • VM上已提前安装好项目所需的Node.js、包管理工具(npm/yarn/pnpm)、进程管理工具(推荐pm2)等运行环境

第一步:将VM注册为DevOps部署资源

不用手动提前在VM上创建部署文件夹,所有路径可在后续配置中自定义:

  • 进入Azure DevOps项目,依次打开「管道」->「环境」,点击「新建环境」
  • 环境类型选择「虚拟机」,填写自定义环境名称,资源类型选择「Linux」
  • 页面会生成专属注册脚本,复制脚本后登录目标Linux VM执行,执行完成后VM会自动同步到DevOps的环境资源列表中

第二步:配置构建管道

构建管道负责将代码打包为可直接部署的产物,避免占用VM的编译资源:

  • 新建管道,源选择存储Node.js代码的DevOps Repos,语言选Node.js,DevOps会自动生成基础配置模板
  • 按实际项目需求调整构建步骤,参考配置如下:
trigger:
- main # 替换为你的实际触发分支名

pool:
  vmImage: ubuntu-latest

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '18.x' # 替换为项目适配的Node.js版本
  displayName: '安装指定版本Node.js'

- script: |
    npm install
    npm run build # 纯后端无编译需求的项目可删除该行
  displayName: '安装依赖并执行构建'

- task: CopyFiles@2
  inputs:
    Contents: |
      **/*
      !.git/**
      !node_modules/.cache/**
    TargetFolder: '$(build.artifactstagingdirectory)'
  displayName: '整理部署所需文件'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(build.artifactstagingdirectory)'
    ArtifactName: 'node-app'
  displayName: '发布构建产物'

第三步:配置发布管道

发布管道负责将构建产物推送到VM的指定路径并启动服务:

  • 新建发布管道,源选择上一步的构建产物,阶段选择「空作业」
  • 阶段内添加「部署到虚拟机」任务,环境选择之前创建的包含目标VM的环境
  • 在内联脚本框填入部署执行脚本,参考配置如下:
# 自定义部署路径,可根据需求修改
DEPLOY_PATH="/opt/node-app"
# 自动创建路径,无需提前手动新建
sudo mkdir -p $DEPLOY_PATH
sudo chown -R $(whoami):$(whoami) $DEPLOY_PATH

# 复制构建产物到目标部署路径
cp -r $(System.DefaultWorkingDirectory)/**/node-app/* $DEPLOY_PATH/

# 重启Node服务,示例为pm2管理场景,可替换为你实际使用的进程管理逻辑
cd $DEPLOY_PATH
if pm2 describe app.js > /dev/null; then
  pm2 restart app.js
else
  pm2 start app.js # 替换为实际项目启动文件路径
fi
pm2 save

常见问题处理

  • 部署文件夹找不到:无需提前在VM上手动查找或创建,部署脚本中的mkdir命令会自动生成目标路径,路径可完全自定义
  • 权限报错:给DevOps注册VM时使用的账号放开部署路径的读写权限,或在对应命令前增加sudo执行即可

内容的提问来源于stack exchange,提问作者Khorf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 04:15:03