お世話になっております。
go + echo + Dockerで環境構築しているのですがmain.go実行時に、
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
でモジュールが見つけられないようです。
As of version 4.0.0, Echo is available as a Go module. Therefore a Go version capable of understanding /vN suffixed imports is required 1.9.7+ 1.10.3+ 1.11+
コンテナ内で、go version go1.13.3 linux/amd64が出力されているので、v4が使えるバージョンの認識ですが、他に設定することございますでしょうか?
error
main.go:5:2: cannot find package "github.com/labstack/echo/v4" in any of: /usr/local/go/src/github.com/labstack/echo/v4 (from $GOROOT) /go/src/github.com/labstack/echo/v4 (from $GOPATH) main.go:6:2: cannot find package "github.com/labstack/echo/v4/middleware" in any of: /usr/local/go/src/github.com/labstack/echo/v4/middleware (from $GOROOT) /go/src/github.com/labstack/echo/v4/middleware (from $GOPATH)
- Dockerfile
FROM golang:1.13.3-alpine3.10 RUN apk add --update --no-cache ca-certificates git RUN go get github.com/labstack/echo/... WORKDIR /app ADD . /app RUN git --version RUN go version CMD ["go", "run", "main.go"]
- docker-compose.yml
version: '3' services: api: build: . command: go run main.go volumes: - .:/app ports: - 1323:1323
- main.go
package main import ( "net/http" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" ) func main() { // Echo instance e := echo.New() // Middleware e.Use(middleware.Logger()) e.Use(middleware.Recover()) // Routes e.GET("/", hello) // Start server e.Logger.Fatal(e.Start(":1323")) } // Handler func hello(c echo.Context) error { return c.String(http.StatusOK, "Hello, World!") }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。