diff --git a/drivers/virtualbox/virtualbox.go b/drivers/virtualbox/virtualbox.go index c44f375eb2..2b8ae0ed5b 100644 --- a/drivers/virtualbox/virtualbox.go +++ b/drivers/virtualbox/virtualbox.go @@ -143,7 +143,7 @@ func (d *Driver) Create() error { // until then always use "latest" isoURL, err = utils.GetLatestBoot2DockerReleaseURL() if err != nil { - return err + log.Warnf("Unable to check for the latest release: %s", err) } // todo: use real constant for .docker diff --git a/drivers/vmwarefusion/fusion.go b/drivers/vmwarefusion/fusion.go index 391b3aeeb5..91048836f0 100644 --- a/drivers/vmwarefusion/fusion.go +++ b/drivers/vmwarefusion/fusion.go @@ -151,7 +151,7 @@ func (d *Driver) Create() error { // until then always use "latest" isoURL, err = utils.GetLatestBoot2DockerReleaseURL() if err != nil { - return err + log.Warnf("Unable to check for the latest release: %s", err) } // todo: use real constant for .docker diff --git a/drivers/vmwarevsphere/vsphere.go b/drivers/vmwarevsphere/vsphere.go index 9a35f4a0d3..09000c75d7 100644 --- a/drivers/vmwarevsphere/vsphere.go +++ b/drivers/vmwarevsphere/vsphere.go @@ -245,7 +245,7 @@ func (d *Driver) Create() error { // until then always use "latest" isoURL, err = utils.GetLatestBoot2DockerReleaseURL() if err != nil { - return err + log.Warnf("Unable to check for the latest release: %s", err) } rootPath := utils.GetDockerDir() diff --git a/utils/b2d.go b/utils/b2d.go index 4b200db0ca..e28d124cd5 100644 --- a/utils/b2d.go +++ b/utils/b2d.go @@ -5,15 +5,33 @@ import ( "fmt" "io" "io/ioutil" + "net" "net/http" "os" "path/filepath" + "time" ) +const ( + timeout = time.Second * 5 +) + +func defaultTimeout(network, addr string) (net.Conn, error) { + return net.DialTimeout(network, addr, timeout) +} + // Get the latest boot2docker release tag name (e.g. "v0.6.0"). // FIXME: find or create some other way to get the "latest release" of boot2docker since the GitHub API has a pretty low rate limit on API requests func GetLatestBoot2DockerReleaseURL() (string, error) { - rsp, err := http.Get("https://api.github.com/repos/boot2docker/boot2docker/releases") + transport := http.Transport{ + Dial: defaultTimeout, + } + + client := http.Client{ + Transport: &transport, + } + + rsp, err := client.Get("https://api.github.com/repos/boot2docker/boot2docker/releases") if err != nil { return "", err }