SparkRDDのノードをDockerで運用することになったのでついでに久しぶりに使うDockerの基本的なところをおさらい。

Goで簡単なHTTPサーバーを立ち上げる

package main

import (
	"fmt"
	"net/http"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		_, _ = fmt.Fprint(w, "Hello World")
	})

	_ = http.ListenAndServe(":3000", nil)
}

localhost:3000にHello Worldが表示されるはずです。

$ curl http://localhost:3000
# Hello World

Dockerfileを書く

FROM golang:latest

COPY main.go /go/src
WORKDIR /go/src

RUN go build main.go

EXPOSE 3000

CMD ["./main"]

続く…