使用Docker获取包超时 - “golang.org/x/net/context/ctxhttp”

时间:2016-11-17 09:48:45

标签: go docker

我尝试使用go package导入此Docker image

从包的文档中,要运行的命令是:

 go get gopkg.in/olivere/elastic.v3

工作,公平。

我需要对docker图像做同样的事情:

docker run -v $PWD:/temp -w /temp -e GOPATH=$PWD -e GOBIN=$PWD/bin golang:latest go get gopkg.in/olivere/elastic.v3

但是我收到了以下错误:

  

package golang.org/x/net/context:无法识别的导入路径   “golang.org/x/net/context”(https fetch:Get   https://golang.org/x/net/context?go-get=1:拨打tcp:lookup golang.org   在192.168.65.1:53:阅读udp 172.17.0.2:46904->192.168.65.1:53:i / o   超时)

     

包golang.org/x/net/context/ctxhttp:无法识别的导入   路径“golang.org/x/net/context/ctxhttp”(https fetch:Get   https://golang.org/x/net/context/ctxhttp?go-get=1:拨打tcp:lookup   golang.org on 192.168.65.1:53:read udp   172.17.0.2:44687->192.168.65.1:53:i / o超时)

为什么?

1 个答案:

答案 0 :(得分:1)

对于那些将要查看此问题的人,我设法找到了解决方案。 我的GOPATHGOBIN设置错误。我应该在docker容器中使用里面的目录。 然后该命令变为:

docker run --rm -v $PWD:/t -w/t -e GOPATH=/t -e GOBIN=/t/bin golang:latest go get -v gopkg.in/olivere/elastic.v3

由于某些原因,它解决了DNS问题。我仍然不明白为什么,但如果我偶然发现一个解释,我会在这里更新。