【问题标题】:Why Cloud Run Showing "Listen On This Port Error"为什么 Cloud Run 显示“侦听此端口错误”
【发布时间】:2024-04-26 21:20:01
【问题描述】:

我正在使用云运行。我拉取 docker 镜像,然后将它们直接推送到谷歌容器注册表,然后将它们链接到 Cloud Run Service。但是,当我尝试部署 Cloud Run Service 时,我不知道为什么每次都会显示此错误

Cloud Run error: Container failed to start. 
Failed to start and then listen on the port defined by the PORT environment variable. 
Logs for this revision might contain more information.

请有人给我任何解决方案,实际上我应该更改哪个文件或我应该进行哪种更改??

【问题讨论】:

    标签: google-cloud-platform google-cloud-run


    【解决方案1】:

    这是容器未启动时的默认错误消息,即使您已明确定义要侦听的端口。

    查看日志,看看到底发生了什么。您可以使用正确的消息修复开头。

    【讨论】:

    • 是的,在我的情况下是数据库连接问题,它会显示此消息。
    【解决方案2】:

    当您向 Cloud Run 提供容器映像时,其中包含必须履行的合同才能正常运行。请read that contract,特别是关于监听端口的部分:

    监听 PORT 上的请求

    容器必须在定义的端口上侦听 0.0.0.0 上的请求 通过 PORT 环境变量。

    在 Cloud Run 容器实例中,PORT 环境变量为 始终设置为 8080,但出于可移植性原因,您的代码不应 硬编码这个值。

    您的容器必须正在运行正在侦听端口 8080 或任何 PORT 环境变量的处理。如果不这样做,它就无法接收传入的请求。

    另见Cloud Run troubleshooting documentation

    【讨论】:

      【解决方案3】:

      最好的建议是查看日志。

      就我而言,我遇到了同样的“缺少端口”错误。但错误是我在 npm 脚本中有错字。点击云运行服务即可找到日志。

      【讨论】:

      • 完美,我要花两个小时才能找到这个
      【解决方案4】:

      就我而言,我没有安装一些我需要的软件包。

      【讨论】: