GoのWebフレームワークのIrisをHerokuにデプロイする
開発環境は、Windows 10 Pro(64bit) + heroku/7.47.12 win32-x64 node-v12.16.2 + go version go1.15.3 windows/amd64。
デプロイする際に、詰まって、pushが成功しなかったので、その解決法のメモ。
1.ディレクトリを作成し(sample_irisとする)、カレントディレクトリにする
2.以下のコマンドを入力する
go mod init sample_iris go get github.com/kataras/iris/v12@master
3.main.goという名前で以下のソースコードを保存する
package main import( "github.com/kataras/iris/v12" "os" ) func main() { app := iris.New() app.Get("/", func(ctx iris.Context){ ctx.HTML("<h1>Hello Iris!!!</h1>") }) app.Listen(":" + os.Getenv("PORT")) }
4.以下のファイルをProcfileという名前で保存する
※拡張子がつかないように注意
web: bin/sample_iris
5. go.modを開いて、以下の項目を追加する
※自分の場合、 ! [remote rejected] master -> master (pre-receive hook declined)とpushが失敗する原因はここだった。
現時点で、おそらく以下のようになっているので、
module sample_iris require github.com/kataras/iris/v12 v12.2.0-alpha2.0.20210219075829-bfbed2f84174 // indirect go 1.15
最後の行に、
// +heroku goVersion go1.15
を追加する。Goのバージョンが、1.15であれば、//も含めて、すべてをコピペして追加する。
バージョンはローカル環境のGoのバージョンと合わせる。
これを入れないと、コンパイルする際に、Push rejected, failed to compile Go app.というメッセージのエラーになるので注意。
6. Git, Heroku CLIがすでにパソコン内にあるという前提で、以下のコマンドを入力する
git init git add -A git commit -m "first commit" heroku create git push heroku master heroku open
実行結果
■参考リンク
Iris Docs
GoをHerokuにデプロイするときに Push rejected, failed to compile Go app. のエラー - Qiita
GitHub - heroku/heroku-buildpack-go: Heroku Go Buildpack