我正在尝试在 Docker 上运行我的第一个 Golang 项目。虽然我成功完成了一个简单的“hello world”应用程序,但我在一个稍微结构化的项目中遇到了一些困难。
该项目有一些文件夹,我在 main.go 文件中导入了这些文件夹。当我尝试在 Docker 上运行我的解决方案时,它在加载这些“包”时卡住了。
这是我的 Dockerfile
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
在我的本地机器上
这是我的项目结构的一瞥
有任何想法吗?