我有一个简单的 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 文件夹中包含所有出售的库,为什么构建在这种情况下不起作用?
我必须告诉它在 vendor 文件夹中查找吗?
最佳答案
如果您的源代码位于 GOPATH
之外,则 vendor
目录不会按预期运行(请参阅 https://github.com/golang/go/issues/14566 )。在当前的 golang:latest
Docker 镜像中,GOPATH
设置为 /go
因此最简单的解决方案是将您的代码复制到/go/src
并从那里构建。
关于go - 如何告诉我的 go build 在 vendor 文件夹中查找 godep 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52194050/