HerokuにGoをデプロイするときに詰まった話

はじめに

Heroku+echo(go)+MySQLでJSON APIサーバを立ててみる - Qiita

デプロイする方法はここを参考にしました。

詰まったところ

2018-11-17T07:33:34.000000+00:00 app[api]: Build succeeded

とでるにもかかわらず

2018-11-17T09:25:37.201406+00:00 app[web.1]: bash: AppName: command not found
2018-11-17T10:50:47.628833+00:00 heroku[web.1]: State changed from crashed to starting
2018-11-17T10:50:48.554417+00:00 heroku[web.1]: Starting process with command `AppName`
2018-11-17T10:50:50.199703+00:00 heroku[web.1]: Process exited with status 127
2018-11-17T10:50:50.148095+00:00 app[web.1]: bash: AppName: command not found
2018-11-17T10:50:50.215774+00:00 heroku[web.1]: State changed from starting to crashed
2018-11-17T12:41:40.335690+00:00 heroku[web.1]: State changed from crashed to starting
2018-11-17T12:41:41.311491+00:00 heroku[web.1]: Starting process with command `AppName`
2018-11-17T12:41:43.123110+00:00 app[web.1]: bash: AppName: command not found
2018-11-17T12:41:43.180230+00:00 heroku[web.1]: Process exited with status 127

永遠と127を吐いて落ちる

直し方

Herokuはgo installするため、コンパイルされたバイナリはbin以下に配置される。

よって、Procfileを以下のように記述する

web: bin/AppName

あとがき

公式でもProcfileの記述は web: AppName となっているので、僕の環境だけの問題かもしれません

理解が浅い可能性があるので何かあればコメントしてください。 よろしくおねがいします!

参考

go - Heroku Golang - command 'main' not found - Stack Overflow