我试图使用经典的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: ~
字符串
1条答案
按热度按时间mzillmmw1#
我可以在使用相同的pm2-runtime start命令时重现相同的情况。
管道将在应用程序启动后继续运行。
x1c 0d1x的数据
据我所知,pm2-runtime是为Docker容器设计的,它将一个应用程序保持在前台,使容器保持运行,
pm2是为在后台发送或运行应用程序的正常使用而设计的。
为了解决这个问题,你可以在windows上对react.js应用使用pm2命令:
字符串
结果:
的
更新:
为了避免Finalize作业清理进程,您可以在Release Pipeline中设置变量:
process.clean = false
的
结果:
的