【问题标题】:NestJS Azure WebAppNestJS Azure WebApp
【发布时间】:2021-11-24 23:00:52
【问题描述】:
我正在尝试在 Azure 应用服务中启动一个 nestJS 应用。正在通过 DevOps 管道进行部署。该构建创建了一个dist 文件夹,我正在使用zip deploy 进行部署。容器似乎启动正常,但我在浏览时收到404。
Container web##############_1_db5070dc for site web############# initialized successfully and is ready to serve requests.
我正在使用以下方式启动应用程序:pm2 serve /home/site/wwwroot/dist/ --no-daemon > app.log
一切看起来都不错,除了 404
任何帮助都会很棒
【问题讨论】:
标签:
node.js
azure
azure-web-app-service
nestjs
azure-webapps
【解决方案1】:
为了强调一点,Node.js 应用程序必须使用所有必需的 NPM 依赖项进行部署。当您部署 Git 存储库或启用构建自动化的 Zip 包时,应用服务部署引擎会自动为您运行 npm install --production。
当您说使用 pm2 serve 启动应用程序时,我相信您已经在 Azure Portal 的应用程序设置中添加了“启动文件”(启动命令)部分。
对于自定义启动文件,请使用任一支持的扩展名:.js 文件/PM2 文件,扩展名为 .json、.config.js、.yaml 或 .yml
对于 Linux WebApp 上的 Nestjs,请尝试以下流程:
- 导航到 src/main.ts 并将端口从 3000 更改为 process.env.PORT
- 导航到 .gitignore 并从编译的输出部分中删除 dist
- 在命令行中运行“npm run build”,这将触发 npm 运行 package.json 中的构建脚本并生成一个 dist 文件夹。
- 通过 git/github 部署应用程序应触发 oryx 构建,它将安装运行应用程序所需的节点模块
- 在门户中,导航到配置并将启动命令设置为“node dist/main.js”
然后,检查 WebApp 是否工作正常。
如果您使用 Windows 上的应用服务,请将 web.config 文件添加到应用程序的根目录 (Nestjs Web.config)
请参阅此文档以获取更多信息Configure a Node.js app for Azure App Service