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 возможно обрезать любые посторонние требования.

Другие вопросы по тегам