4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Herokuではポート番号を環境変数から取得する必要がある

Last updated at Posted at 2021-07-22

はじめに

Herokuでコンテナデプロイを試していたときにハマったので共有します。
コンテナデプロイについては、以下にまとめました。

Herokuでコンテナデプロイを試した - Qiita

事象

「デプロイ出来た^^」と意気揚々と heroku openしたところ、以下のエラーページに遭遇しました。
image.png
ログを確認した所、以下のメッセージが見つかりました。

terminal
$ heroku logs --tail
...(省略)
2021-07-22T01:48:54.026828+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
...(省略)

解決方法

調べてみたところ、Herokuではポート番号が動的に生成されるため環境変数から取得する必要があるとのこと。

ポート番号を環境変数から取得する処理を追加しました。
今回の例はGoですが、別言語の場合は読み替えてください。

port := os.Getenv("PORT")
if port == "" {
	port = "8000"
}

getting-startedを見ても、環境変数から取得していました。
go-getting-started/main.go at main · heroku/go-getting-started

これで無事デプロイが成功しました。

参考

HerokuでNode.jsアプリを実行する際のポート番号について | プログラマーになった 「中卒」 男のブログ
Goで作ったアプリケーションをHerokuで動かす - Qiita
go-getting-started/main.go at main · heroku/go-getting-started

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?