【问题标题】:How do I deploy a Node.js HTTP/2 application onto Google Compute Engine using a Docker image?如何使用 Docker 映像将 Node.js HTTP/2 应用程序部署到 Google Compute Engine 上?
【发布时间】:2020-09-21 18:16:11
【问题描述】:

这一直有效,直到一周前,VM 由于 try-catch 中的 finally 丢失而耗尽内存。因此,我尝试将此修复程序重新部署到新实例,但现在没有任何效果。

这里是服务器的git仓库:https://gitlab.com/pumpkin-spice-latte/psl-server

我使用 GCP 控制台外壳来构建和推送映像。它位于容器可用且正在运行的 VM 上。但是,当我尝试连接到外部 IP 地址时,什么都没有。 https://35.203.160.44/

这是docker psdocker images的截图: docker-ps-docker-images

这是Firewall Rules的截图: firewall-rules

哈!!!!哈哈

【问题讨论】:

    标签: node.js docker google-cloud-platform google-compute-engine http2


    【解决方案1】:

    我在本地克隆了repo,发现端口有错字:

    const PORT =
      process.env.PORT || (process.env.NODE_ENV !== 'production' ? 8443 : 433); // should be 443
    

    我认为您的意思是 443 而不是 433。

    【讨论】:

    • 谢谢!该端口是在该实例上发布的,但这就是为什么我发现所有这些超级混乱的原因。除非我需要做一些额外的事情才能“发布”它。我添加了另一个带有防火墙规则的图像。
    • @PumpkinSpice docker ps 输出中的 PORTS 列为空,表示端口未发布。你用来启动容器的docker run 命令是什么?你添加了-p 443:443 吗?
    • 我只是使用 GCP 上的标准 UI 输入加载到容器中,它会自动为我运行容器。你知道我是否有办法将端口附加到它?再次,非常感谢!你是一个很大的帮助:)
    • 啊,我只是 found out GCP 使用 --network="host" 运行容器,因此您不需要发布端口。所以这不是问题,嗯......查看提交日志,我找不到可能导致这种情况的先前部署之间的任何明显变化。除了--expose-http2 标志,也许没有它试试?否则我会拉你的 repo 并尝试自己运行它以了解更多信息。
    • 我添加了它以尝试解决问题哈哈,但我会尝试删除它
    猜你喜欢
    • 2019-05-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    • 2019-05-30
    • 2017-01-24
    • 1970-01-01
    • 2017-09-04
    • 2020-01-15
    相关资源
    最近更新 更多