要將 Go app 放到 Heroku 上執行基本上並不複雜,只要依照這篇 Getting Started With Go on Heroku 一步一步照著做就行了,如果出了問題可以查一下是否是下列幾個原因造成的:
.godir
要設定成你的 package 路徑,例如你的程式是放在$GOPATH/src/simplypatrick/flights
,那 package 路徑就是simplypatrick/flights
。Procfile
裡的web:
後面是接執行檔的路徑,我目前試驗的結果是放在bin/
裡面,所以以我的例子要設定成web: bin/flights
- Heroku 目前預設好像都不會把 web process 跑起來,所以需要執行
heroku ps:scale web=1
來啟動 web process。
話說回來,目前 Heroku 目前並沒有正式支援 Go,目前能夠放 Go app 上去跑其實是透過 custom buildpack 完成的。要怎麼創建自己的 buildpack 可以參考 Run Anything on Heroku with Custom Buildpacks,例如前面例子的 Go buildpack 是用 Go 1.1.2,如果你想改成用 Go 1.2 可以自己 fork 一份 buildpack 來改。