gpt4 book ai didi

Linux 上的 Azure Web 应用程序 : "Error: Container didn' t respond to HTTP pings on port: 808 0"- when using: "start": "pm2 start server.js"

转载 作者:行者123 更新时间:2023-12-01 04:55:14 24 4
gpt4 key购买 nike

如果我的节点应用程序使用启动脚本,我的应用服务 Linux 实例会崩溃:"start": "pm2 start server.js":

2019-04-15 11:36:34.432 ERROR - Container crime-digest__6ea5_0 for site crime-digest__6ea5 has exited, failing site start
2019-04-15 11:36:34.489 ERROR - Container crime-digest__6ea5_0 didn't respond to HTTP pings on port: 8080, failing site start. See container logs for debugging.

容器日志除了上述错误之外什么都没有。如果我只使用:"start": "node server.js",应用程序启动得很好。

我知道如果容器没有通过 8080 响应,容器就会停止,但我将 process.env.PORT 设置为我的服务器的端口,所以我无法弄清楚找出 pm2 启动脚本使容器崩溃的原因。

我有一种感觉,如果使用上面的启动脚本,由于进程中的一些混淆,process.env.PORT 是未定义的,但找不到任何方法来调试它,因为之后容器崩溃了,我无法再通过 ssh 访问它来检查它。

最佳答案

我们是否正在尝试 ping 端口 8080?这里的问题是端口 8080 没有公开,因此当我们尝试 ping 容器时,我们不会 ping 容器正在监听的端口。

有几种方法可以解决这个问题。

  1. 使用 Dockerfile 中的 EXPOSE 指令公开端口 8080。
  2. 使用值为“8080”的 WEBSITES_PORT 应用设置来公开该端口。

您可以引用以下文章:

https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-rm-web-app-deployment?view=azure-devops

https://blogs.msdn.microsoft.com/waws/2017/09/08/things-you-should-know-web-apps-and-linux/

关于Linux 上的 Azure Web 应用程序 : "Error: Container didn' t respond to HTTP pings on port: 808 0"- when using: "start": "pm2 start server.js",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55688600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com