我在运行本地版本以及配置Dockerfile时遇到问题。
我的项目结构如下:
project
- cmd
main.go
- internal
- app
app.go
Dockerfile
所以,在main.go
中,我说
import (
"project/internal/app"
)
然后,当我说go build
时,我可以在本地完美运行。
但是,在我的Dockerfile中,我说
FROM golang
ENV GOPATH /go/src/github.com/project
COPY . /go/src/github.com/project
WORKDIR /go/src/github.com/project
RUN make linux
我得到了问题:
cmd/main.go:4:2: cannot find package "Slaxtract/internal/app" in any of:
/usr/local/go/src/project/internal/app (from $GOROOT)
/go/src/github.com/project/src/project/internal/app (from $GOPATH)
为什么Docker将src
添加到GOPATH?以及如何配置它以找到正确的位置?
如果我将main.go
更改为相对路径,则可以破解补丁-但是当我得到时,我将无法在本地运行
main.go:4:2: local import "../internal/app" in non-local package
我们将不胜感激。