牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Docker と Golang と Goji で動かしてみたメモ

(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"]

COPYADD の使い分けって?

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>

Hello, goji! と web ブラウザに表示される

参考