我有一个简单的Dockerfile,我正在尝试构建和运行我的Go REST API服务器。
到目前为止,我的Dockerfile是:
FROM golang:latest
RUN mkdir /app
ADD . /app/
WORKDIR /app
RUN go build -o main .
CMD ["/app/main"]
当我运行docker-compose up时,出现此错误:
main.go:12:2: cannot find package "github.com/bradfitz/gomemcache/memcache" in any of:
我使用的是Godeps,并且我的vendor文件夹中提供了所有库,为什么在这种情况下构建不起作用?
我是否必须告诉它在供应商文件夹中查找?
答案 0 :(得分:1)
如果您的源代码位于vendor
之外,则GOPATH
目录无法正常工作(请参见https://github.com/golang/go/issues/14566)。在当前的golang:latest
Docker映像中,GOPATH
设置为/go
,因此最简单的解决方案是将代码复制到/go/src
的子目录中并从那里构建。>