Проблема со сборкой образа докера для golang API с внутренними пакетами, так как внутренние пакеты не могут быть импортированы
Когда я собираю программу локально, она работает отлично. Но когда я копирую следующее в докер и пытаюсь создать образ, я сталкиваюсь с проблемой, говорящей, что пакеты не могут быть импортированы. Поддержка обработки пакетов go в докере кажется редкой проблемой.
Структура папки
-go
|
-bin
-pkg
-src
|
-github(github packages)
-Models (Models package)
-main.go
Программа, которую я запускаю:
FROM golang:latest
ENV GOPATH /go
RUN mkdir /app
ADD . /app
WORKDIR /app
RUN go build -o main .
CMD ["/app/main"]
Проблема, которую я получаю:
PS C:\Users\Rj-Dev\go\SRC> docker build -t my-go-app .
Sending build context to Docker daemon 81.34MB
Step 1/7 : FROM golang:latest
---> 05feda542433
Step 2/7 : ENV GOPATH /go
---> Using cache
---> 210da42c97c8
Step 3/7 : RUN mkdir /app
---> Using cache
---> 84e671cd147b
Step 4/7 : ADD . /app
---> 5c158421b580
Step 5/7 : WORKDIR /app
---> Running in 85171b79610a
Removing intermediate container 85171b79610a
---> 63562e5f52a4
Step 6/7 : RUN go build -o main .
---> Running in 6cf4814ebed3
BookingsByProjectsController.go:4:2: cannot find package "Models" in any of:
/usr/local/go/src/Models (from $GOROOT)
/go/src/Models (from $GOPATH)
main.go:8:2: cannot find package "github.com/denisenkom/go-mssqldb" in any of:
/usr/local/go/src/github.com/denisenkom/go-mssqldb (from $GOROOT)
/go/src/github.com/denisenkom/go-mssqldb (from $GOPATH)
API_Configurations.go:9:2: cannot find package "github.com/gorilla/mux" in any of:
/usr/local/go/src/github.com/gorilla/mux (from $GOROOT)
/go/src/github.com/gorilla/mux (from $GOPATH)
main.go:9:2: cannot find package "github.com/jinzhu/gorm/dialects/mssql" in any of:
/usr/local/go/src/github.com/jinzhu/gorm/dialects/mssql (from $GOROOT)
/go/src/github.com/jinzhu/gorm/dialects/mssql (from $GOPATH)
API_Configurations.go:10:2: cannot find package "gopkg.in/natefinch/lumberjack.v2" in any of:
/usr/local/go/src/gopkg.in/natefinch/lumberjack.v2 (from $GOROOT)
/go/src/gopkg.in/natefinch/lumberjack.v2 (from $GOPATH)
The command '/bin/sh -c go build -o main .' returned a non-zero code: 1
По какой-то причине докер не может найти внутренние и внешние пакеты для установки. Но я могу построить его локально. Почему не могу встроить в докер.