Soalan:
Menggunakan aplikasi GoLang pada Heroku menggunakan sokongan GoDep, binaan berjaya tetapi mengakses titik akhir mengembalikan "Application Ralat." Apl ini berjalan pada port 9000 pada localhost, tetapi grace.Serve nampaknya mendengar pada port yang berbeza.
Heroku Log Output:
2019-07-08T05:03:48.131507+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
Permohonan Kod:
err := grace.Serve(":9000", context.ClearHandler(http.DefaultServeMux))
Jawapan:
Isunya ialah aplikasi mengikat pelayan webnya secara jelas kepada port 9000, yang bercanggah dengan port yang diperuntukkan oleh Heroku. Heroku memperuntukkan port dinamik melalui pembolehubah persekitaran PORT.
Untuk menyelesaikan masalah ini, aplikasi harus memperuntukkan port secara dinamik berdasarkan pembolehubah persekitaran PORT dan bukannya pengekodan keras port 9000.
Disemak Kod Permohonan:
port := os.Getenv("PORT") if port == "" { port = "9000" // Default port if not specified } err := grace.Serve(":" + port, context.ClearHandler(http.DefaultServeMux))
Atas ialah kandungan terperinci Mengapa Apl GoLang Heroku Saya Mengembalikan 'Ralat Aplikasi' Walaupun Binaan Berjaya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!