diff --git a/proxy/hosts.go b/proxy/hosts.go index 91b2da67..883e4c2b 100644 --- a/proxy/hosts.go +++ b/proxy/hosts.go @@ -20,8 +20,7 @@ func (proxy *Proxy) RewriteEtcHosts(hostsPath, fqdn string, ips []*net.IPNet, ex contents := buf.String() cmdLine := fmt.Sprintf("echo '%s' > %s && rm -f %s && echo '%s' > %s", contents, mntHosts, mntHosts, contents, mntHosts) mounts := []string{hostsPathDir + ":" + mnt} - proxy.runTransientContainer([]string{"sh"}, []string{"-c", cmdLine}, mounts) - return nil + return proxy.runTransientContainer([]string{"sh"}, []string{"-c", cmdLine}, mounts) } // we assume (for compatibility with the weave script) that fqdn has a dot diff --git a/proxy/proxy.go b/proxy/proxy.go index c106913c..15d0741d 100644 --- a/proxy/proxy.go +++ b/proxy/proxy.go @@ -506,7 +506,10 @@ func (proxy *Proxy) attach(containerID string) error { if container.HostConfig != nil { extraHosts = container.HostConfig.ExtraHosts } - proxy.RewriteEtcHosts(container.HostsPath, fqdn, ips, extraHosts) + if err := proxy.RewriteEtcHosts(container.HostsPath, fqdn, ips, extraHosts); err != nil { + Log.Errorf("Error from rewriting container's /etc/hosts: %s", err) + // carry on since the original /etc/hosts is good enough in most cases + } } pid := container.State.Pid @@ -680,6 +683,7 @@ func (proxy *Proxy) runTransientContainer(entrypoint, cmd, binds []string) (err env = append(env, fmt.Sprintf("%s=%s", "WEAVE_DEBUG", val)) } + Log.Debugf("Running image %q; entrypoint=%q; cmd=%q; binds=%q", proxy.Image, entrypoint, fmt.Sprintf("%.72s", cmd), binds) var container *docker.Container container, err = proxy.client.CreateContainer(docker.CreateContainerOptions{ Config: &docker.Config{ diff --git a/weave b/weave index abb8ba04..5a75c4fc 100755 --- a/weave +++ b/weave @@ -1235,6 +1235,7 @@ launch() { -e WEAVE_DEBUG \ -e WEAVE_HTTP_ADDR \ -e WEAVE_PASSWORD \ + -e EXEC_IMAGE=$EXEC_IMAGE \ -e CHECKPOINT_DISABLE \ $WEAVE_DOCKER_ARGS \ $IMAGE \