diff --git a/docs/toml.md b/docs/toml.md index 279acecda..b3106aacf 100644 --- a/docs/toml.md +++ b/docs/toml.md @@ -541,7 +541,6 @@ Labels can be used on containers to override default behaviour: - `traefik.frontend.passHostHeader=true`: forward client `Host` header to the backend. - `traefik.frontend.priority=10`: override default frontend priority - `traefik.frontend.entryPoints=http,https`: assign this frontend to entry points `http` and `https`. Overrides `defaultEntryPoints`. -- `traefik.domain=traefik.localhost`: override the default domain - `traefik.docker.network`: Set the docker network to use for connections to this container @@ -576,7 +575,6 @@ endpoint = "http://127.0.0.1:8080" watch = true # Default domain used. -# Can be overridden by setting the "traefik.domain" label on an application. # # Required # @@ -638,7 +636,6 @@ Labels can be used on containers to override default behaviour: - `traefik.frontend.passHostHeader=true`: forward client `Host` header to the backend. - `traefik.frontend.priority=10`: override default frontend priority - `traefik.frontend.entryPoints=http,https`: assign this frontend to entry points `http` and `https`. Overrides `defaultEntryPoints`. -- `traefik.domain=traefik.localhost`: override the default domain ## Kubernetes Ingress backend diff --git a/provider/docker.go b/provider/docker.go index 3764eb808..9b732195e 100644 --- a/provider/docker.go +++ b/provider/docker.go @@ -270,6 +270,13 @@ func (provider *Docker) getIPAddress(container dockertypes.ContainerJSON) string } } } + + // If net==host, quick n' dirty, we return 127.0.0.1 + // This will work locally, but will fail with swarm. + if container.HostConfig != nil && "host" == container.HostConfig.NetworkMode { + return "127.0.0.1" + } + for _, network := range container.NetworkSettings.Networks { return network.IPAddress } diff --git a/provider/docker_test.go b/provider/docker_test.go index 364f0e885..5dad8e030 100644 --- a/provider/docker_test.go +++ b/provider/docker_test.go @@ -269,6 +269,30 @@ func TestDockerGetIPAddress(t *testing.T) { // TODO }, expected: "10.11.12.14", }, + { + container: docker.ContainerJSON{ + ContainerJSONBase: &docker.ContainerJSONBase{ + Name: "bar", + HostConfig: &container.HostConfig{ + NetworkMode: "host", + }, + }, + Config: &container.Config{ + Labels: map[string]string{}, + }, + NetworkSettings: &docker.NetworkSettings{ + Networks: map[string]*network.EndpointSettings{ + "testnet1": { + IPAddress: "10.11.12.13", + }, + "testnet2": { + IPAddress: "10.11.12.14", + }, + }, + }, + }, + expected: "127.0.0.1", + }, } for _, e := range containers {