我正在尝试在Docker上运行我的第一个Golang项目。 虽然我在一个简单的 "hello world "应用程序上取得了成功,但在一个结构稍显复杂的项目上,我却遇到了一些困难。

该项目内部有一些文件夹,我在main.go文件中导入了这些文件夹。 当我试图在Docker上运行我的解决方案时,它在加载这些 "包 "时被卡住了。

这是我的Docker文件

FROM golang:1.17-alpine

WORKDIR /app

COPY go.mod ./
COPY go.sum ./
RUN go mod download

COPY *.go ./

RUN go env GOROOT
RUN go build -o /my-api

EXPOSE 8080

CMD [ "/my-api" ]

这是我得到的错误

Step 8/10 : RUN go build -o /my-api
 ---> Running in c1c9d1058caa
main.go:10:2: package my-api/Repositories is not in GOROOT (/usr/local/go/src/my-api/Repositories)
main.go:11:2: package my-api/Settings is not in GOROOT (/usr/local/go/src/my-api/Settings)

我注意到的一件事是,这个路径

/usr/local/go/src/my-api/Settings

应该是

/usr/local/gocode/src/my-api/Settings

在我的本地机器上

下面是对我的项目结构的一瞥

enter image description here

有什么想法吗?