2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Go net/httpサーバーのホットリロードにAirを使ってみた

Last updated at Posted at 2023-03-21

はじめに

Goのnet/httpを使ったAPIプロジェクトを開発しています。デバッグの際、都度ビルドし直すのが面倒なので、いい感じにホットリロードできるというAirを導入したくなりました。

開発環境

  • Windows10
  • VSCode

調べてみた

Docker-composeを使った事例 (参考参照)が多く出てきました。ただ、docker-composeで実行するのは若干面倒なので、それ以外の方法は無いのかと探してみることにしました。

見つけた いい感じの方法

  • Devcontainerに airをインストールして、DevContainer上で実行する。
    • Windows10でdocker-composeで実行するとAirでファイル変更が検知されない? 場合があると知り合いに聞いたが特に問題なく上手くいった。(筆者環境では)

方法

  • リポジトリ直下に .devcontainer フォルダ作成
  • .devcontainerフォルダ内に 下記内容のdevcontainer.json を作成
{
	"name": "Go",
	"image": "mcr.microsoft.com/devcontainers/go:0-1-bullseye",
	"features": {
		"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {
			"moby": true,
			"installDockerBuildx": true,
			"version": "latest",
			"dockerDashComposeVersion": "v2"
		}
	},
	"postCreateCommand": "go install github.com/cosmtrek/air@latest"
}
  • 保存し、プロジェクトを再度開き直す
  • DevContainerを開くかどうかVSCodeに確認されるので、DevContainerとして開き直す
  • インストール完了後 プロンプト上で air と打って Airを立ち上げる
  • 以後 コードの変更に応じて ホットリロードが行われる

できた感想

  • Windowsで導入するのめんどくさそうと思っていたけれど、かなりあっさり導入できた...

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?