Mornor
Mornor

Reputation: 3803

Get package timeout with Docker - "golang.org/x/net/context/ctxhttp"

I try to import this package using the go Docker image.

From the docs of the package, the command to run is:

 go get gopkg.in/olivere/elastic.v3

Works, fair enough.

I need to do the same with the docker image:

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

But I got the following error:

package golang.org/x/net/context: unrecognized import path "golang.org/x/net/context" (https fetch: Get https://golang.org/x/net/context?go-get=1: dial tcp: lookup golang.org on 192.168.65.1:53: read udp 172.17.0.2:46904->192.168.65.1:53: i/o timeout)

package golang.org/x/net/context/ctxhttp: unrecognized import path "golang.org/x/net/context/ctxhttp" (https fetch: Get https://golang.org/x/net/context/ctxhttp?go-get=1: dial tcp: lookup golang.org on 192.168.65.1:53: read udp 172.17.0.2:44687->192.168.65.1:53: i/o timeout)

Why is that?

Upvotes: 2

Views: 1975

Answers (1)

Mornor
Mornor

Reputation: 3803

For those who will be looking at this question, I managed to find a solution. My GOPATH and GOBIN have been wrongly set. I should have used the go directory inside the docker container. The command then becomes:

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

For some reasons, it solved the DNS issue. I still don't understand why, but if I stumble on an explanation, I'll update here.

Upvotes: 2

Related Questions