go - 如何告诉我的 go build 在 vendor 文件夹中查找 godep 库?

标签 go godeps

我有一个简单的 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/

相关文章:

git - 强制 godep 在 circle build 中通过 SSH 从 github 中 pull 包

go - 如何使用Go模板渲染CSS和JS文件

go - 从 Helm 图中的值文件读取值时的默认键值

go - Redigo:当 Redis 服务器关闭时快速失败

python - 应用引擎 : convert ndb model to go lang struct

go - 设置go dep后依赖出现问题

go - 无法通过 godep update ... 命令和 godep save -r ./更新 vendor deps

go - 将反射值转换到 golang 中?

go - 使用 dep init 时不在任何 GOPATH 中

git - Dep xxx 已恢复,但无法加载,错误为 : Package xxx not found