🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Echo(フレームワーク)

Echoは、Go言語で作られたフレームワーク。非常に軽量で、小~中規模のアプリ構成を想定した仕様になっています。公式ドキュメントが用意されており、初心者でも始めやすい点が特徴です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

3回答

1466閲覧

cannot find package "github.com/labstack/echo/v4/middleware" in any of:

退会済みユーザー

退会済みユーザー

総合スコア0

Echo(フレームワーク)

Echoは、Go言語で作られたフレームワーク。非常に軽量で、小~中規模のアプリ構成を想定した仕様になっています。公式ドキュメントが用意されており、初心者でも始めやすい点が特徴です。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2019/11/01 01:41

お世話になっております。
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!") }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

i can't write in japanese, but i have the answer to your question.

you need to do go mod init app before doing go get github.com/labstack/echo/v4

I'm answering for the sake of anyone stumbling upon this question again

投稿2020/08/04 06:12

編集2020/08/04 06:23
danietanfh

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

下記の方法に変更するとうまくいったので、

https://qiita.com/y-ohgi/items/671de11f094f72a058b1

同様に、

$ docker run -v `pwd`:/go/app -w /go/app golang:1.13.3-alpine3.10 go mod init app

を実行して、go.modファイルを作成すると、ファイルを見つけに行くことができました

https://github.com/labstack/echo-contrib/issues/8
にもあるように、go.modは必須?

投稿2019/11/04 06:19

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

GOPATHの設定がおかしいとかですかね・・・?

自分も似たようなこと(Docker+Go+echo)をした際に記事書いたのでもし参考になればと思います↓
初心者でもDockerでAmazonLinux+Go(Echo)+Mysqlの環境構築しつつ簡単なAPIを作って動かす - Qiita

投稿2019/11/01 02:09

sola-msr

総合スコア876

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/11/04 06:19

投稿ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問