heroku に golang アプリをデプロイ、ビルドは成功しましたが、アプリケーション エラーが発生しました
heroku に golang アプリケーションをデプロイするときは、アプリケーションが正しいポートにバインドされています。これを行わないと、アプリケーションの起動に失敗し、エンドポイントにアクセスするときに「アプリケーション エラー」メッセージが表示される可能性があります。
あなたの場合、ログには、アプリケーションが起動後 60 秒以内に強制終了されたことが示されています。 Web プロセスが指定されたポートにバインドできません。この問題を解決するには、$PORT 環境変数で指定されたポートに Web サーバーをバインドする必要があります。 Heroku は、この環境変数をデフォルトの HTTP および HTTPS ポートに自動的に設定し、アプリケーションがパブリックにアクセスできるようにします。
HTTP サーバーを予期されたポートにバインドするには、コードを次のように変更します。
import ( "os" "github.com/gorilla/mux" "github.com/gorilla/context" "gopkg.in/paytm/grace.v1" ) func main() { log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ CHIT STARTED $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$") log.Println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$") muxRouter := mux.NewRouter() muxRouter.HandleFunc("/", Articles) http.Handle("/", muxRouter) port := os.Getenv("PORT") if port == "" { port = "9000" // Default port if not specified } err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux)) if err != nil { log.Println("[ERROR GRACEFUL]", err) os.Exit(1) } os.Exit(0) }
この変更を行うことで、アプリケーションは Heroku によって指定されたポートにバインドされ、デフォルトの HTTP および HTTPS ポートでパブリックにアクセスできるようになり、「アプリケーション エラー」が解決されます。問題です。
以上がHeroku 上の Golang アプリでビルドが成功した後に「アプリケーション エラー」が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。