mirror of https://github.com/docker/docs.git
fixes #229: wait for docker before adding to known_hosts
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
This commit is contained in:
parent
4c285dcffa
commit
8d40d8219c
|
|
@ -332,6 +332,14 @@ func (d *Driver) Create() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cmd, err = d.GetSSHCommand("if [ -e /var/run/docker.pid ]; then sudo /etc/init.d/docker stop; fi")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if err := cmd.Run(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// HACK: configure docker to use persisted auth
|
// HACK: configure docker to use persisted auth
|
||||||
cmd, err = d.GetSSHCommand("echo DOCKER_TLS=no | sudo tee -a /var/lib/boot2docker/profile")
|
cmd, err = d.GetSSHCommand("echo DOCKER_TLS=no | sudo tee -a /var/lib/boot2docker/profile")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -355,7 +363,7 @@ func (d *Driver) Create() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd, err = d.GetSSHCommand("sudo /etc/init.d/docker restart")
|
cmd, err = d.GetSSHCommand("sudo /etc/init.d/docker start")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
18
host.go
18
host.go
|
|
@ -6,6 +6,7 @@ import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"net"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
@ -33,6 +34,19 @@ type hostConfig struct {
|
||||||
DriverName string
|
DriverName string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func waitForDocker(addr string) error {
|
||||||
|
for {
|
||||||
|
conn, err := net.DialTimeout("tcp", addr, time.Second*5)
|
||||||
|
if err != nil {
|
||||||
|
time.Sleep(time.Second * 5)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
conn.Close()
|
||||||
|
break
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func NewHost(name, driverName, storePath string) (*Host, error) {
|
func NewHost(name, driverName, storePath string) (*Host, error) {
|
||||||
driver, err := drivers.NewDriver(driverName, storePath)
|
driver, err := drivers.NewDriver(driverName, storePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -156,6 +170,10 @@ func (h *Host) addHostToKnownHosts() error {
|
||||||
|
|
||||||
tlsConfig.InsecureSkipVerify = true
|
tlsConfig.InsecureSkipVerify = true
|
||||||
|
|
||||||
|
log.Debugf("waiting for Docker to become available on %s", addr)
|
||||||
|
if err := waitForDocker(addr); err != nil {
|
||||||
|
return fmt.Errorf("unable to connect to Docker daemon: %s", err)
|
||||||
|
}
|
||||||
testConn, err := tls.Dial(proto, addr, tlsConfig)
|
testConn, err := tls.Dial(proto, addr, tlsConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("tls Handshake error: %s", err)
|
return fmt.Errorf("tls Handshake error: %s", err)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue