TL;DR
Docker上でGolangのWebフレームワークであるEchoを動かしてみました。
DockerでGolang環境の構築
FROM golang:1.13.6-alpine
WORKDIR /go/src
COPY ./src /go/src
RUN apk update && apk add git
# RUN go get -u github.com/labstack/echo/...
dockerfile
内のgo get -u github.com/labstack/echo/...
が実行出来なかったのは何故だろう。。。
docker-compose.yml
version: '3'
services:
app:
build: .
ports:
- 8080:8080
volumes:
- ./src:/go/src
tty: true
$ mkdir src
src/server.go
package main
import (
"net/http"
"github.com/labstack/echo"
)
func main() {
e := echo.New()
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello, Echo World!!")
})
e.Logger.Fatal(e.Start(":8080"))
}
$ docker-compose build
$ docker-compose up -d
Echoのインストール
https://echo.labstack.com/
https://echo.labstack.com/guide
$ docker-compose exec app go get -u github.com/labstack/echo/...
$ docker-compose exec app go run server.go
____ __
/ __/___/ / ___
/ _// __/ _ \/ _ \
/___/\__/_//_/\___/ v4.1.13
High performance, minimalist Go web framework
https://echo.labstack.com
____________________________________O/_______
O\
⇨ http server started on [::]:8080

出来ました
本当はdocker-compose up -d
だけでEchoの実行までいきたいんですがね。。。