Goの初心者です。
発端は、golangの実行方法って
go run main.go
-
go build main.go
でビルドして、./main
で実行
の2種類のはずなのに、Dockerfileにそんな記述ないよ!どうして?
と思ったのがきっかけ。
初心者用の記事だとほとんどgo run main.go
で済ませてるし、開発プロジェクトに入っても、ローカルの実行はdocker-compose up -d [コンテナ名]
などでできてしまうため、あまり意識しなかったのだが、Dockerfile-localをちゃんと最後まで読んでみると、
CMD ["air", "-c", ".air.toml"]
という記述で締めくくられていたため、そこで実行しているのだろうという仮説から題名に戻ることになる。
Airとはgolangのホットリロードツールのことである。
ホットリロードとはソースコードを更新するたびにソースをビルドし直して実行するという手間を省くため、ソースコードを更新し、保存したら自動でビルドと再実行を行うということである。
Airの使い方は簡単に言ってしまえば、.air.toml という設定ファイルに設定を書き込んで、air -c .air.toml
というコマンドを叩けば使える。
設定ファイルの書き方などは調べてみればすぐに書けるようになると思われるので割愛。気が向いたら加筆する。
https://github.com/cosmtrek/air
こういう大元になるような、足元の知識を知らず知らず飛ばして開発してるからなかなか自作できないエンジニアになるという自戒を込めてここに書き記す。