Dockerを用いたGoの環境構築 (original) (raw)

やりたいこと

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"}がかえってきたら成功