docker - Godep无法在Docker容器中工作

标签 docker godeps

我是dockers的新手,正在尝试为简单的Go应用程序创建docker容器。我正在使用Godep进行依赖性管理。

这是我的Dockerfile:

FROM pottava/golang:1.5

RUN go get github.com/tools/godep \
      && rm -rf /go/pkg /go/src

ADD ./ /go

ENV GOPATH /go
RUN godep go build -v -o ./bin/main ./src/main.go

当我尝试生成图像时,出现以下错误:
...
 ---> 5cb6dd001eb3
Removing intermediate container 15eb0b298adb
Step 5 : ENV GOPATH /go
 ---> Running in 1c0043c3e963
 ---> 6cd0498af200
Removing intermediate container 1c0043c3e963
Step 6 : RUN godep go build -v -o ./bin/main ./src/main.go
 ---> Running in af2386d13c9a
godep: [WARNING]: godep should only be used inside a valid go package directory and
godep: [WARNING]: may not function correctly. You are probably outside of your $GOPATH.
godep: [WARNING]:   Current Directory: /go
godep: [WARNING]:   $GOPATH: /go
src/main.go:18:2: cannot find package "github.com/Sirupsen/logrus" in any of:
    /usr/local/go/src/github.com/Sirupsen/logrus (from $GOROOT)
    /go/Godeps/_workspace/src/github.com/Sirupsen/logrus (from $GOPATH)
    /go/src/github.com/Sirupsen/logrus
...

最佳答案

如果设置GOPATH,则意味着您定义了 go workspace

在有效的包中执行godep意味着在以下位置执行它:

$GOPATH/src/a/package

确保在克隆到GOPATH/src的现有go项目中执行godep。

简单测试:在您的计算机上尝试相同的命令(不在正在构建的Docker镜像中),然后在运行时,在Dockerfile中重现设置和命令。

关于docker - Godep无法在Docker容器中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36512840/

相关文章:

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

go - 如何将 Go dep 与 GitLab 子组一起使用

go - 无法使用 godeps 更新依赖包

docker - 错误 : volumes. dbdata 必须是映射或 null

linux - localhost 在 Docker 容器中意味着什么?

node.js - 如何在运行 docker 容器时更新配置文件(.env 文件)

git - 使用本地包的 Godep

azure - 如何将 HTTPS 添加到 Azure Linux VM 上运行的包含 Docker 的网站?

branch - 如何并行运行Web项目的分支?

go - 关于 Go 中 vendoring 依赖的建议