はじめに
golangを無料で動かせるサーバーを探していたらherokuがあったので、heroku上でgolangを動かしてみる。
下記のページを参考に作業を進める devcenter.heroku.com
前提条件
- wslのubuntu環境にて作業を行う
- すでにherokuでアカウント作成している状態
ローカル環境
- herokuのcliを下記のコマンドインストールする
curl https://cli-assets.heroku.com/install.sh | sh
- herokuにログインする
heroku login
下記のページを参考にgolangプロジェクトのひな形をクローンする devcenter.heroku.com
下記のコマンドを一通り実行するとgit cloneしてきたgolangプロジェクトがherokuにgolangのソースがデプロイされる
git clone https://github.com/heroku/go-getting-started.git cd go-getting-started heroku create git push heroku main
- ひな形のプロジェクトはginフレームワークを利用している
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"log"
"os"
"github.com/gin-gonic/gin"
_ "github.com/heroku/x/hmetrics/onload"
)
func main() {
port := os.Getenv("PORT")
if port == "" {
log.Fatal("$PORT must be set")
}
router := gin.New()
router.Use(gin.Logger())
router.LoadHTMLGlob("templates/*.tmpl.html")
router.Static("/static", "static")
router.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.tmpl.html", nil)
})
router.Run(":" + port)
}