Skip to content

Airを試す

   

HTMLとかコード修正したときに手動で再起動するのが面倒なので、ホットリロードツールを導入してみた。

$ go install github.com/cosmtrek/air@latest
$ air init
$ air

  __    _   ___  
 / /\  | | | |_) 
/_/--\ |_| |_| \_ , built with Go 

mkdir /home/umemak/workspace/eventsite_go/tmp
watching .
watching cmd
watching cmd/eventsite
watching db
watching db/sql
watching model
watching model/user
!exclude tmp
watching web
watching web/template
building...
no Go files in /home/umemak/workspace/eventsite_go
failed to build, error: exit status 1
^Ccleaning...
see you again~

デフォルトだと、cmdの下のmain.goを見つけてくれない?

air initで作成された.air.tomlを編集して、cmd = "go build -o ./tmp/main ."cmd = "go build -o ./tmp/main ./cmd/eventsite/"にしたら動いた。

これで開発効率上がるはず。

ビルドファイルとビルドログがtmpに出力されるので、.gitignoretmp/を追加した。

DockerコンテナでgolangをホットリロードするAirを導入を参考に、Dockerでもいけるようにしてみた。

Dockerfileはgo getではなくgo installでも大丈夫だった。 gitのインストール不要。

FROM golang:1-alpine

RUN go install github.com/cosmtrek/air@latest

WORKDIR /app

CMD ["air"]