next.js 使用经典Azure管道在Windows服务器上运行PM2

bpzcxfmw  于 12个月前  发布在  Windows
关注(0)|答案(1)|浏览(135)

我试图使用经典的azure pipelines为nextjs项目构建发布管道,将其部署在自托管的windows服务器上,我使用iis作为nextjs应用程序的重定向服务器,我的问题是如何保持nextjs应用程序运行以启用从iis重定向到它?

  • 我在CMD中尝试了npm run start,它可以保持发布管道的运行
  • 我尝试iisnode和它导致错误
  • 我尝试使用PM2/ PM2-runtime,它使发布管道保持在运行状态。

我使用的任务

steps:
    - task: NodeTool@0
      displayName: 'Use Node 20.x'
      inputs:
        versionSpec: 20.x
    steps:
- powershell: |
   npm i
  workingDirectory: 'some directory'
  displayName: 'npm i'

steps:
- powershell: |
   npm install pm2 -g
   
  workingDirectory: 'some directory'
  displayName: 'npm install pm2 -g'

steps:
- powershell: 'pm2-runtime start ecosystem.config.js --env production'
  workingDirectory: 'some directory'
  displayName: 'pm2-runtime start ecosystem.config.js --env production'
  env:
    HOME: ~

字符串

mzillmmw

mzillmmw1#

我可以在使用相同的pm2-runtime start命令时重现相同的情况。
管道将在应用程序启动后继续运行。
x1c 0d1x的数据
据我所知,pm2-runtime是为Docker容器设计的,它将一个应用程序保持在前台,使容器保持运行,
pm2是为在后台发送或运行应用程序的正常使用而设计的。
为了解决这个问题,你可以在windows上对react.js应用使用pm2命令:

pm2 start ecosystem.config.js --env production --watch

字符串

结果:


更新:

为了避免Finalize作业清理进程,您可以在Release Pipeline中设置变量:process.clean = false


结果:


相关问题