golang+gin+dockerでAPI開発①
明けましておめでとうございます。
ものレボの古澤です。
本年もよろしくお願いします。
さて、今回のお題ですが、golang+ginでAPIを作っていこうと思います。
新年になったので、気持ちを新たに新しい技術に触れることを目的として、とりあえず触ってみたいと思います。
今回はまず環境構築を行います。
構築する環境のディレクトリ構成は以下になります。
.
├── app
│ ├── go.mod
│ ├── go.sum
│ └── main.go <- サーバー本体
├── docker-compose.yml
└── infra
└── Dockerfile
手順は以下になります。
- 1. golang+dockerの環境を構築
- 2. ginをインストール
- 3. Hello World
1. golang+dockerの環境を構築
Dockerfileを準備
# とりあえずgolangのバージョンは最新を使用
FROM golang:latest
# アップデートとgitのインストール
RUN apt-get update && apt-get install -y git
WORKDIR /go/src
続いてdocker-compose.ymlを準備
version: "3"
services:
app:
container_name: go-test
build:
context: .
dockerfile: ./infra/Dockerfile
tty: true
volumes:
- ./app:/go/src
env_file:
- ./.go_env
ports:
- 3001:3001
最後に.go_envを準備。今回はPATHの定義だけ。
GOPATH=/go
後はbuildしてupするだけで、golangの環境構築は完了です。
2. ginをインストール
まずは、1で作成した環境を立ち上げ、アタッチします。
以下のコマンドを実行。
# go mod init go-test
# go get -u github.com/gin-gonic/gin
3. Hello World
サーバーの確認用ファイルを用意します。
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
router.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "Hello World",
})
})
router.Run(":3001")
}
docker にアタッチして、go run main.go
を実行すると、サーバーが起動します。
ブラウザで http://localhost:3001
にアクセすると、{“message":"Hello World"} が表示されます。
表示できれば完了です。
最後に
以上、golang+gin+dockerの環境構築でした。次回は、ちょっとしたAPIを作ってみたいと思います。
MonoRevoに興味が多少でも出た方、ご連絡ください。