Go Dep - Отсутствует подпакет "chi/middleware" после гарантии деп
Отсутствует промежуточный пакет промежуточного программного обеспечения от go-chi после запуска деп-обеспечения.
project-backend | main.go:8:2: cannot find package "github.com/go-chi/chi/middleware" in any of:
project-backend | /go/src/backend/vendor/github.com/go-chi/chi/middleware (vendor tree)
project-backend | /usr/local/go/src/github.com/go-chi/chi/middleware (from $GOROOT)
project-backend | /go/src/github.com/go-chi/chi/middleware (from $GOPATH)
мой файл Docker, я также смонтировал свой том кода внутри моего файла docker-compose.yaml
FROM golang:1.12
WORKDIR /go/src/backend
COPY Gopkg.toml Gopkg.lock ./
RUN go get -u github.com/golang/dep/cmd/dep
COPY . ./
RUN dep ensure
RUN go get github.com/pilu/fresh
CMD [ "fresh" ]
Gopkg.toml
[prune]
go-tests = true
unused-packages = true
non-go = true
[[constraint]]
name = "github.com/go-chi/chi"
version = "4.0.2"
мой код, это просто базовый маршрутизатор для тестирования моего докера и деп конфигурации.
package main
import (
"fmt"
"net/http"
"github.com/go-chi/chi"
"github.com/go-chi/chi/middleware"
)
func main() {
r := chi.NewRouter()
r.Use(middleware.Logger)
port := ":8080"
r.Get("/api", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("API is working!"))
})
format := "\033[1;36m%s\033[0m"
fmt.Printf(format, "Build success, running on port "+port)
http.ListenAndServe(port, r)
}
Мой код работает нормально при использовании Go Get. Но на депе отсутствует его подпакет.
1 ответ
Так как вы находитесь на Go 1.12, можете ли вы попытаться увидеть, сохраняется ли проблема при использовании go mod
(Перейти 1.11+ Модули).
$ export GO111MODULE=on # manually active module mode
$ cd $GOPATH/src/<project path> # e.g., cd $GOPATH/src/you/hello
$ go mod init
go mod init
будет концерт вашего депо Gopkg.lock
файл.
И это должно обнаружить и извлечь вашу отсутствующую зависимость.
Если это сработало, то запустите go mod tidy
возможно обрезать любые посторонние требования.