(macosx10.9, boot2docker1.6.0)
インストール
boot2docker
boot2docker 実行
$ boot2docker init $ boot2docker start $ $(boot2docker shellinit)
ファイル
- Dockerfile
- hello.go
Dockerfile
FROM golang:1.4.2 RUN mkdir -p /go/src/app COPY . /go/src/app WORKDIR /go/src/app ENV GOPATH /go RUN go get github.com/zenazn/goji EXPOSE 8000 CMD ["go", "run", "/go/src/app/hello.go"]
COPY
と ADD
の使い分けって?
hello.go
package main import ( "fmt" "net/http" "github.com/zenazn/goji" "github.com/zenazn/goji/web" ) func hello(c web.C, w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, %s!", c.URLParams["name"]) } func main() { goji.Get("/hello/:name", hello) goji.Serve() }
実行・確認
$ docker build -t=hello-goji . $ docker run -p 8000:8000 hello-goji go run /go/src/app/hello.go
$ boot2docker ip <boot2docker-ip>
- http://<boot2docker-ip>:8000//hello/goji
Hello, goji!
と web ブラウザに表示される