LoginSignup
0
0

はじめに

Goの有名なフレームワークの一つであるGinを触ってみたいと思い、dockerで環境構築してみました。

Dockerでの環境構築

1.Ginのインストール

まず、Dockerfileを記述します。

FROM golang:latest

WORKDIR /code

docker-compose.ymlを記述します。

docker-compose.yml
services:
  server:
    build: .
    container_name: gintest
    tty: true
    volumes:
      - .:/code/
    ports:
      - 8080:8080

一度、go.modを作成するためにイメージを作成します。

docker compose build

ここから一旦コンテナを起動して、go.modを作成します。

docker compose run --rm server sh -c "go mod init gintest"

ginをインストールします。

docker compose run --rm server sh -c "go get github.com/gin-gonic/gin"

2.Ginが機能するか確認

Dockerfileを書き直します

FROM golang:latest

WORKDIR /app

COPY go.mod go.sum ./

RUN go mod download

COPY . .

RUN go mod tidy

RUN go build -o main .

CMD ["./main"]

main.goを記述します。
このコードでは、アクセスできたら{"message": "Hello, Gin!"}とjsonが表示されるようにしています。

main.go
package main

import (
	"github.com/gin-gonic/gin"
)

func helloWorld(c *gin.Context) {
	//リクエストが成功した場合に、JSONを返す
	c.JSON(200, gin.H{
		"message": "Hello, Gin!",
	})
}

func main() {
	//*gin.Engineをrに入れる
	r := gin.Default()
	//エンドポイントの指定
	r.GET("/", helloWorld)
	//サーバーを起動
	r.Run()
}

*gin.Engineは、エンドポイントやミドルウェアを登録する際に使うそうです。

*gin.Contextは、リクエストやURLのパラメーターにアクセスする際に使う構造体です。
こちらの記事を参考になるかなと感じました。

ここまでできたら、下のコマンドでイメージの再作成とコンテナの立ち上げを行います。

docker compose up --build

にアクセスして、

スクリーンショット 2024-06-15 3.22.20.png

Ginの環境構築ができました。

感想

今までDjangoをかじっていましたが、結構構築の仕方が違うなと感じるところが多く難しく感じました。

ただginEngineやginContextの理解が奥深いと感じたので、これから勉強してみようかなと感じました。

0
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
0
0