はじめに
Dockerを使ってGo言語の開発環境を構築し、アプリケーションを動作するまでの手順をまとめました。
ファイル作成
mkdir go_project
cd go_project
touch main.go
touch Dockerfile
ファイル修正
main.go
// サーバーアプケーションとして動作し、以下の挙動をします。
// ●どんなHTTPリクエストに対しても「Hello Docker!!」とレスポンスする
// ●8080ポートでサーバアプリケーションとして動作する
// ●クライアントからリクエストを受けた際は、received requestのログを標準出力に表示する
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter,r *http.Request) {
log.Println("received request")
fmt.Fprintf(w, "Hello Docker!!")
})
log.Println("start server")
server := &http.Server{Addr: ":8080"}
if err := server.ListenAndServe(); err != nil {
log.Println(err)
}
}
FROM golang:1.9
RUN mkdir /echo
COPY main.go /echo
CMD ["go", "run", "/echo/main.go"]
イメージのビルド
docker image build -t go_project .
イメージの確認
docker image ls
コンテナの起動
docker run -d -p 9000:8080 go_project
GETリクエストの確認
Hello Docker!! が返って来ることを確認します。
curl http://localhost:9000