k01ken’s b10g

He110 W0r1d!

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

実行結果
f:id:k01ken:20210220011307p:plain


■参考リンク
Iris Docs
GoをHerokuにデプロイするときに Push rejected, failed to compile Go app. のエラー - Qiita
GitHub - heroku/heroku-buildpack-go: Heroku Go Buildpack