diff --git a/proxy/common.go b/proxy/common.go index 985fae9a..69d337e3 100644 --- a/proxy/common.go +++ b/proxy/common.go @@ -6,6 +6,7 @@ import ( "fmt" "io/ioutil" "net/http" + "os" "os/exec" "regexp" @@ -22,7 +23,13 @@ func callWeave(args ...string) ([]byte, []byte, error) { args = append([]string{"--local"}, args...) Log.Debug("Calling weave", args) cmd := exec.Command("./weave", args...) - cmd.Env = []string{"PROCFS=/hostproc", "PATH=/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"} + cmd.Env = []string{ + "PATH=/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "PROCFS=/hostproc", + } + if bridge := os.Getenv("DOCKER_BRIDGE"); bridge != "" { + cmd.Env = append(cmd.Env, fmt.Sprintf("DOCKER_BRIDGE=%s", bridge)) + } var stdout, stderr bytes.Buffer cmd.Stdout = &stdout cmd.Stderr = &stderr diff --git a/weave b/weave index ad979a1d..0a416fa2 100755 --- a/weave +++ b/weave @@ -1063,6 +1063,7 @@ launch_proxy() { -v /proc:/hostproc \ -e PROCFS=/hostproc \ -e WEAVE_CIDR=none \ + -e DOCKER_BRIDGE \ --entrypoint=/home/weave/weaveproxy \ $WEAVEPROXY_DOCKER_ARGS $EXEC_IMAGE $PROXY_ARGS) wait_for_log $PROXY_CONTAINER_NAME "proxy listening"