错误 - 容器 xxx 未响应端口 xxx 上的 HTTP ping,站点启动失败

问题描述 投票:0回答:1

我正在测试Azure Service App服务以在Nodejs中部署应用程序(前面是nextjs,后面是nestjs)。我在 Linux 中创建了该实例,并将我的代码链接到 GitHub 以将其与 GitHub 操作一起使用。我遇到的问题是,在我的代码中,我没有将其设置为使用任何特定端口,我让 Azure 将其分配给我,但它给了我以下错误:

错误 - 容器 xxx 未响应端口 8080 上的 HTTP ping,站点启动失败。请参阅容器日志进行调试。 错误 2024-03-20T20:52:48.487 错误 - 网站 costosapp-prueba 的容器 xxx 已退出,网站启动失败

就我而言,我没有在代码中使用 Dockerfile,但显然 Linux 在内部创建了一个容器来托管应用程序。我尝试从代码中手动将端口分配给我的应用程序,我什至使用 Dockerfile 尝试公开端口,但一切总是会导致相同的结果。

你知道我做错了什么吗?注册实例并不复杂。我什至遵循教程并执行完全相同的步骤并遇到相同的问题。请帮帮我? :)

我已经尝试为代码分配端口,我尝试使用 Dockerfile,我什至向应用程序添加了环境变量,但我仍然得到相同的结果。

node.js nestjs azure-web-app-service port next.js13
1个回答
0
投票

我创建了一个 Web 应用程序,前端使用 Next.js,后端使用 Nest.js,并成功将其部署到 Azure 应用服务。我在 Azure 门户中创建了两个 Azure Web 应用程序来部署前端和后端。

这是我的 main.ts 文件。如果您对端口进行硬编码,请像这样更改它:

await app.listen(process.env.PORT || 3000);

此外,启用 CORS,如下所示。

main.ts

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  app.enableCors({
    origin: 'http://localhost:3001', 
    methods: 'GET',   
    allowedHeaders: 'Content-Type, Accept', 
  });
  await app.listen(process.env.PORT || 3000);
}
bootstrap();

部署后,我在使用NestJS时也遇到了同样的问题,如下所示。

enter image description here

对于“容器未响应 HTTP ping”错误,请添加以下任意启动命令

  pm2 start dist/main.js --no-daemon
  npm run start:prod
  node dist/main

如下图。

enter image description here

Azure Nestjs 输出

enter image description here

Azure Nextjs 输出

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.