DockerでGo(Gin)環境を作成する
初めに
Docker 環境がすでにあることを前提で進めます。
Docker を使用して Go(Gin)環境を簡単に作成してみましょう。
DockerFile 作成
作業ディレクトリを作成し、【DockerFile】作成し以下をコピペする
// ベースとなる Docker イメージ指定
FROM golang:latest
コンテナ内に作業ディレクトリを作成
RUN mkdir /go/src/work
コンテナログイン時のディレクトリ指定
WORKDIR /go/src/work
GoApp 起動
CMD ["go","run","main.go"]
ホストのファイルをコンテナの作業ディレクトリに移行
ADD . /go/src/work
docker-compose.yml 作成
同ディレクトリに【docker-compose.yml】ファイルを作成し以下をコピペする
version: '3' # compose ファイルのバーション指定
services:
app: # service 名
build: . # ビルドに使用する Dockerfile があるディレクトリ指定
tty: true # コンテナの起動永続化
volumes: - .:/go/src/work # マウントディレクトリ指定
ports: - 8080:8080
Go ソースを作成
同ディレクトリに【main.go】ファイルを作成し以下をコピペする
package main
import (
"fmt"
"net/http"
)
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "<h1>Hello, World</h1>")
}
func main() {
http.HandleFunc("/", helloHandler)
fmt.Println("Server Start")
http.ListenAndServe(":8080", nil)
}
ls コマンドをたたきファイルがディレクトリに存在するか確認してください。
ls DockerFile docker-compose.yml main.go
CLI でコマンド実行
git bush(CLI ツール) で以下コマンドをたたきます。
$ docker-compose build
$ docker-compose up -d
http://localhost:8080 にアクセスしてみてください。