概要
本記事ではGo言語のバックエンドフレームワークechoを利用した際の開発環境を構築します。
主なゴールは以下の通り
- ソースを修正する度に都度アプリが更新されるホットリロードでの起動
- Dockerを用いた環境構築
その前に以下記事を参考にgoenvを利用した環境環境を構築しておくのをお勧めします。(最低でも、go言語がお使いのPCにインストール済みの前提となります)
また以下記事を参考にDocker Desktopをダウンロードしておきましょう!
これからechoフレームワークを使っていきたい方にぜひ参考にしていただければと思います。
Goプロジェクトの作成
echoドキュメントを参考にまずはgoプロジェクトを作成していきましょう!
まず以下コマンドを実行します。
今回myappという名前でプロジェクトを作成していますが、任意の名前で作成頂いて問題ございません。
mkdir myapp && cd myapp
go mod init myapp
go get github.com/labstack/echo/v4
上記、何をやっているかというと
- goプロジェクトの為のディレクトリ作成
- goプロジェクトを初期化
- echoパッケージのダウンロード
といったことをしています。
では作成したプロジェクトをVSCodeで開いてみましょう!

上記go.modとgo.sumが作成されていることを確認して、次に進みます!
ポイント
プロジェクトソースを実装
echoドキュメントに倣って、Hello, World!を返す以下server.goを作成します。
package main
import (
"net/http"
"github.com/labstack/echo/v4"
)
func main() {
e := echo.New()
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
})
e.Logger.Fatal(e.Start(":1323"))
}
dokcerファイルを実装
今回開発用のechoサーバのコンテナイメージを作成する、dockreファイルを作成します。
ファイル名はapi.dockerfileとしておきます。
このairパッケージがgoをホットリロードするパッケージになります。
FROM golang:1.23.2
WORKDIR /app
# airパッケージをダウンロード
RUN go install github.com/air-verse/air@latest
CMD ["air"]
今回golangのバージョンは1.23.2に設定してますが、go versionコマンドでお使いバージョンを確認し、設定してください
airの設定ファイルを作成
airを実行する為の設定ファイル.air.toml
を作成します。
root = "."
testdata_dir = "testdata"
tmp_dir = "tmp"
[build]
args_bin = []
bin = "main"
cmd = "go build -o ./main ."
delay = 1000
exclude_dir = ["assets", "tmp", "vendor", "testdata"]
exclude_file = []
exclude_regex = ["_test.go"]
exclude_unchanged = false
follow_symlink = false
full_bin = ""
include_dir = []
include_ext = ["go", "tpl", "tmpl", "html"]
include_file = []
kill_delay = "0s"
log = "build-errors.log"
poll = false
poll_interval = 0
post_cmd = []
pre_cmd = []
rerun = false
rerun_delay = 500
send_interrupt = false
stop_on_error = false
[color]
app = ""
build = "yellow"
main = "magenta"
runner = "green"
watcher = "cyan"
[log]
main_only = false
time = false
[misc]
clean_on_exit = false
[screen]
clear_on_rebuild = false
keep_scroll = true
compose.yamlファイルを実装
2で作成したイメージを起動するcompose.yamlを作成します。
services:
api:
container_name: myapp
build:
context: ./
dockerfile: api.dockerfile
volumes:
- type: bind
source: './'
target: '/app'
ports:
- 1323:1323
restart: always
ディレクトリの中身が以下の通りになってるはずです。

動かしてみよう!
以下コマンドを実行して、起動してみましょう!
docker compose up -d
dockerコマンドを実行するにはDocker Desktopを起動しておきましょう!
処理が完了したら、以下URLをブラウザで開いてみましょう!
http://localhost:1323/

次にホットリロードができているか確認してみましょう!server.goのHello, World!
の文字列を任意の文字列に変更し、ファイルを保存して再度上記URLにアクセスしてみましょう!

こんな表示になればホットリロードでのecho開発環境の構築は完了です!
さあバックエンドアプリを開発する環境が整いました!