Golang アプリケーションを Heroku にデプロイ: ビルドは成功するが、アプリケーション エラーが発生する
Godep サポートを使用して GoLang アプリケーションを Heroku にデプロイしようとした最初の試みは、ビルドは成功しましたが、アプリケーションのエンドポイントにアクセスすると「アプリケーション エラー」が発生しました。この問題をトラブルシューティングするには、問題とその解決策を詳しく調べてみましょう。
問題の概要:
デプロイされたアプリがエンドポイント (例: '/) にアクセスする際に応答しません。 ')。 Heroku ログには、「Web プロセスが $PORT にバインドできませんでした。」というエラーが表示されます。
解決策:
Heraku では、アプリケーションが Web サーバーをポートにバインドする必要があります。 PORT 環境変数で指定されます。ただし、アプリケーション コードは現在、ポート 9000 でサーバーを起動します。
これを解決するには、アプリケーションのサーバーを Heroku によって指定されたポートで起動する必要があります。その方法は次のとおりです。
import "os" func main() { // ... (your existing code) // Get the port from the PORT environment variable, or default to 9000 if not set port := os.Getenv("PORT") if port == "" { port = "9000" // Default port if not specified } // Start the server on the specified port err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux)) // ... (your existing code) }
正しいポートにバインドすると、アプリケーションで「ブート タイムアウト」エラーが発生しなくなり、Heraku のポートを介して HTTP ポートと HTTPS ポートの両方でリクエストを正常に処理できるようになります。ゲートウェイ。
以上がGo アプリが Heroku 上で正常にビルドされるのに、「アプリケーション エラー」で失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。