初心者SEのつぶやき

初心者SEのつぶやき

Dockerを用いたGoの環境構築

やりたいこと

Dockerを利用して、Go言語(Gin)の環境構築を行いたい。

手順

ファイル構成

.
├── app
│   ├── go.mod
│   ├── go.sum
│   └── main.go
├── Dockerfile
│── docker-compose.yml
└── README.md

Dockerfileの作成

GoのDockerfileを作成

FROM golang:1.18

RUN apt-get update && apt-get install -y git
WORKDIR /go/src/app
COPY ./app .

CMD ["go", "run", "."]

docker-compose.ymlを作成

今後DB連携などを考えdocker-composeを用いる。

version: "3"
services:
  app:
    container_name: ir-backend
    build:
      context: .
      dockerfile: ./Dockerfile
    tty: true
    volumes:
      - ./app:/go/src/app
    ports:
      - 8080:8080

appフォルダの作成

appフォルダを作成し、移動する。

mkdir -p ./app
cd ./app

Goモジュールを初期化する

go mod init helloworld

Ginをインストール

go get -u github.com/gin-gonic/gin

main.goを作成

localhost:8080にアクセスした時にHello WorldJSON形式で返すようにする。

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(":8080")
}

起動

下記コマンドで起動する。

docker compose up --build

localhost:8080に接続し、{"message": "Hello World"}がかえってきたら成功