Web进程在启动golang后的60秒内未能绑定到$ PORT

时间:2019-02-19 08:33:48

标签: go heroku mux

我使用golang开发了一个rest api,将存储库推送到了Heroku,还在互联网上托管了Mysql Server.Go rest api连接到Mysql Server并获取并插入数据。

heroku上的应用程序昨天运行良好。但是今天早上我在“ heroku logs --tail”上收到此错误:Web进程在启动后60秒内未能绑定到$ PORT

这是main.go的代码:

package main

import (
    "os"
    "github.com/mingrammer/go-todo-rest-api-example/app"
    "github.com/mingrammer/go-todo-rest-api-example/config"
)

func main() {
    config := config.GetConfig()

    app := &app.App{}
    app.Initialize(config)
    port, ok := os.LookupEnv("PORT")

    if ok == false {
        port = "3000"
    }

    app.Run(":"+port)
}

3 个答案:

答案 0 :(得分:0)

这是Heroku上的node.js应用程序的已知问题。

  

在极少数情况下,您的应用程序可能正在使用process.env.PORT,但仍可能无法绑定。这可能是由于应用程序试图在本地主机上进行绑定引起的。相反,您可能需要将其更改为0.0.0.0。

可以假设同样对于go服务也是一个问题。在Heroku support site 上查看这篇文章。

答案 1 :(得分:0)

我用

解决了

os.Getenv(“ PORT”)

答案 2 :(得分:0)

您可以使用os.Getenv

这是修改后的main.go代码:

package main

import (
    "os"
    "github.com/mingrammer/go-todo-rest-api-example/app"
    "github.com/mingrammer/go-todo-rest-api-example/config"
)

func main() {
    config := config.GetConfig()

    app := &app.App{}
    app.Initialize(config)
    port, err := os.Getenv("PORT")
    if err != nil {
        port = "3000"
    } 

    app.Run(":"+port)
}