diff --git a/docker/docker_client.go b/docker/docker_client.go index a9533ea39a..6a1475f6cc 100644 --- a/docker/docker_client.go +++ b/docker/docker_client.go @@ -545,6 +545,15 @@ func (c *dockerClient) makeRequestToResolvedURLOnce(ctx context.Context, method, return nil, err } } + if c.client.CheckRedirect == nil { + c.client.CheckRedirect = func(req *http.Request, via []*http.Request) error { + logrus.Printf("Redirecting host to %s", req.Host) + if len(via) >= 10 { + return errors.New("stopped after 10 redirects") + } + return errors.Wrap(c.setupRequestAuth(req, extraScope), "failed to authorize redirect") + } + } logrus.Debugf("%s %s", method, url) res, err := c.client.Do(req) if err != nil {