mirror of https://github.com/docker/docs.git
Merge pull request #266 from ehazlett/tls-check
fixes #229: wait for docker before adding to known_hosts
This commit is contained in:
commit
9a2f8ca748
|
|
@ -332,6 +332,14 @@ func (d *Driver) Create() error {
|
|||
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
|
||||
cmd, err = d.GetSSHCommand("echo DOCKER_TLS=no | sudo tee -a /var/lib/boot2docker/profile")
|
||||
if err != nil {
|
||||
|
|
@ -355,7 +363,7 @@ func (d *Driver) Create() error {
|
|||
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 {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
18
host.go
18
host.go
|
|
@ -6,6 +6,7 @@ import (
|
|||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
|
@ -33,6 +34,19 @@ type hostConfig struct {
|
|||
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) {
|
||||
driver, err := drivers.NewDriver(driverName, storePath)
|
||||
if err != nil {
|
||||
|
|
@ -156,6 +170,10 @@ func (h *Host) addHostToKnownHosts() error {
|
|||
|
||||
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)
|
||||
if err != nil {
|
||||
return fmt.Errorf("tls Handshake error: %s", err)
|
||||
|
|
|
|||
Loading…
Reference in New Issue