使用Docker获取包超时 – “golang.org/x/net/context/ctxhttp”
我尝试使用go Docker镜像来导入这个包 。
从包的文档中,要运行的命令是:
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
但是我得到了以下错误:
包golang.org/x/net/context:无法识别的导入path“golang.org/x/net/context”(https访问:获取https://golang.org/x/net/context?go-get=1 :拨号tcp:查找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:无法识别的导入path“golang.org/x/net/context/ctxhttp”(https访问:获取https://golang.org/x/net/context/ctxhttp? go-get = 1 :拨号tcp:查找golang.org 192.168.65.1:53:读取udp 172.17.0.2:44687->192.168.65.1:53:I / O超时)
这是为什么?
对于那些将要看这个问题的人,我设法find了一个解决scheme。 我的GOPATH
和GOBIN
被错误地设置了。 我应该使用Docker容器内的go目录。 命令然后变成:
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问题。 我仍然不明白为什么,但如果我偶然发现一个解释,我会在这里更新。
- ssh使用golang中的交互式shell执行nsenter作为远程命令来debuggingdocker容器
- 在docker api的golang sdk中为ContainerCreate函数设置PortBindingsconfiguration
- dockerpipe理员如何获得200而不是401的返回码
- docker工人 – 无法从外部访问docker端口
- Docker返回“json:can not unmarshal string into Go value of type string”
- (启动容器时出错:API error(500)Hyperledger
- 使用go编译交叉编译CGO_ENABLED – 警告:找不到libudev.so.1
- Go不能创buildRabbitMQ频道。 Docker容器上的RabbitMQ服务器,主机上的Go脚本
- 获取stream错误:streamID 1; 在容器中使用Golang中的GooglesearchAPI时的PROTOCOL_ERROR