🥽
【Hello World⑮】echo @ Go
echoでGoのWebアプリを作ります
Windows11のDocker環境上で
Go言語のechoを使い、Hello Worldアプリを作ります。
環境
Windows 11 Pro 23H2
WLS 2.1.5.0(Ubuntu 22.04.1 LTS)
Docker Desktop 4.28.0
Visual Studio Code
①フォルダ・ファイルを作成
以下の構成でフォルダとファイルを作ります。
フォルダ構成
go
├─app
│ └─main.go
└─compose.yaml # コンテナ作成時の指示を記載したファイル
PowerShell
mkdir go ;`
cd go ;`
mkdir app ;`
New-Item compose.yaml ;`
New-Item app/main.go ;`
code compose.yaml ;`
code app/main.go
compose.yaml
services:
api:
image : golang:1.22-bullseye
container_name : go
working_dir : /app
command : bash -c "go mod tidy && go run main.go"
ports:
- "1323:1323"
volumes:
- ./app:/app
main.go
package main
import (
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
"net/http"
)
func main() {
// Echo instance
e := echo.New()
// Middleware
e.Use(middleware.Logger())
e.Use(middleware.Recover())
// Routes
e.GET("/", hello)
// Start server
e.Logger.Fatal(e.Start(":1323"))
}
// Handler
func hello(c echo.Context) error {
return c.String(http.StatusOK, "Hello World echo @ Go on Docker!")
}
②プロジェクトを作成
以下のコマンドを実行し、プロジェクトを作成します。
※Dockerのイメージ内でプロジェクトの作成と、echoのインストールを行い、作成されたgo.mod
とgo.sum
をホストにコピーします。
PowerShell
docker run -it --rm -v .:/host golang:1.22-bullseye `
bash -c "mkdir /app && `
cd /app && `
go mod init sample && `
go get github.com/labstack/echo/v4 && `
cp /app/* /host/app/"
作成されるフォルダ・ファイルの構成と「go.mod」の内容
フォルダ構成
go
├─app
│ ├─go.mod
│ ├─go.sum
│ └─main.go
└─compose.yaml # コンテナ作成時の指示を記載したファイル
go.mod
module sample
go 1.22.2
require github.com/labstack/echo/v4 v4.11.4
require (
github.com/golang-jwt/jwt v3.2.2+incompatible // indirect
github.com/labstack/gommon v0.4.2 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v1.2.2 // indirect
golang.org/x/crypto v0.17.0 // indirect
golang.org/x/net v0.19.0 // indirect
golang.org/x/sys v0.15.0 // indirect
golang.org/x/text v0.14.0 // indirect
golang.org/x/time v0.5.0 // indirect
)
③コンテナを起動
以下のコマンドを実行し、Dockerのイメージを作成してコンテナを起動します。
PowerShell
docker compose up -d
④Hello Worldが表示されることを確認
http://localhost:1323に接続して、Hello Worldが表示されることを確認します。
Discussion