|
|
@ -23,6 +23,7 @@ THE SOFTWARE. |
|
|
|
package docker |
|
|
|
package docker |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
import ( |
|
|
|
|
|
|
|
"fmt" |
|
|
|
"os" |
|
|
|
"os" |
|
|
|
"os/exec" |
|
|
|
"os/exec" |
|
|
|
"strings" |
|
|
|
"strings" |
|
|
@ -32,28 +33,24 @@ import ( |
|
|
|
|
|
|
|
|
|
|
|
func (d Docker) GetDockerMachineIP() (string, error) { |
|
|
|
func (d Docker) GetDockerMachineIP() (string, error) { |
|
|
|
machine := os.ExpandEnv("$DOCKER_MACHINE_NAME") |
|
|
|
machine := os.ExpandEnv("$DOCKER_MACHINE_NAME") |
|
|
|
if machine != "" { |
|
|
|
if machine == "" { |
|
|
|
log.Debugf("Docker Machine found: %s", machine) |
|
|
|
log.Tracef("Docker Machine not specified via DOCKER_MACHINE_NAME env var") |
|
|
|
|
|
|
|
return "", nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
log.Debugf("Docker Machine found: %s", machine) |
|
|
|
dockerMachinePath, err := exec.LookPath("docker-machine") |
|
|
|
dockerMachinePath, err := exec.LookPath("docker-machine") |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
if err == exec.ErrNotFound { |
|
|
|
if err == exec.ErrNotFound { |
|
|
|
if machine != "" { |
|
|
|
log.Debugf("DOCKER_MACHINE_NAME env var present, but executable docker-machine not found: %+v", err) |
|
|
|
log.Debugf("DOCKER_MACHINE_NAME env var present, but executable docker-machine not found: %w", err) |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
log.Tracef("docker-machine executable not found: %w", err) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
return "", nil |
|
|
|
return "", nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
out, err := exec.Command(dockerMachinePath, "ip", machine).Output() |
|
|
|
out, err := exec.Command(dockerMachinePath, "ip", machine).Output() |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
log.Printf("Error executing 'docker-machine ip'") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if exitError, ok := err.(*exec.ExitError); ok { |
|
|
|
if exitError, ok := err.(*exec.ExitError); ok { |
|
|
|
log.Printf("%s", string(exitError.Stderr)) |
|
|
|
return "", fmt.Errorf(string(exitError.Stderr)) |
|
|
|
} |
|
|
|
} |
|
|
|
return "", err |
|
|
|
return "", err |
|
|
|
} |
|
|
|
} |
|
|
|