ディレクトリー構成 各種ファイルを以下のように配置した。
1 2 3 4 5 + app/ | +- Dockerfile | +- src | +- server.go +- docker-composer.yml
docker-compose.yml TCP ポート 8080 でサーバーを起動する。
1 2 3 4 5 6 7 8 version: '2' services: app: build: context: ./app ports: - 8080 :8080 tty: true
Dockerfile Alpine Linux 上で Go の実行環境を作成し、Echo を導入する。
1 2 3 4 5 6 7 8 9 10 11 12 13 FROM golang:1.13 .6 -alpineENV GOENV_ROOT=/go/ENV PATH=$GOENV_ROOT/bin:$PATHWORKDIR /go/src COPY ./src/server.go /go/src/server.go RUN apk add --update --no-cache git \ && go get github.com/labstack/echo /... CMD ["go" , "run" , "server.go" ]
app/src/server.go TCP ポート 8080 でサーバーを起動し、/ に GETメソッドでアクセスしたら Hello, World を表示する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 package mainimport ( "net/http" "github.com/labstack/echo" ) func main () { e := echo.New() e.GET("/" , func (c echo.Context) error { return c.String(http.StatusOK, "Hello, World!!" ) }) e.Logger.Fatal(e.Start(":8080" )) }