フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

WSL上でHerokuのgolangを動かす

はじめに

  • 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
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)
}