mirror of
https://github.com/containrrr/watchtower.git
synced 2025-09-21 21:30:48 +02:00
fix: only remove container id network aliases (#1724)
This commit is contained in:
parent
650acde015
commit
897b1714d0
2 changed files with 16 additions and 6 deletions
|
@ -230,9 +230,18 @@ func (client dockerClient) GetNetworkConfig(c t.Container) *network.NetworkingCo
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, ep := range config.EndpointsConfig {
|
for _, ep := range config.EndpointsConfig {
|
||||||
// This keeps accumulating across upgrades with no apparent added value
|
aliases := make([]string, 0, len(ep.Aliases))
|
||||||
// so throwing the information away to prevent overflows.
|
cidAlias := c.ID().ShortID()
|
||||||
ep.Aliases = nil
|
|
||||||
|
// Remove the old container ID alias from the network aliases, as it would accumulate across updates otherwise
|
||||||
|
for _, alias := range ep.Aliases {
|
||||||
|
if alias == cidAlias {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
aliases = append(aliases, alias)
|
||||||
|
}
|
||||||
|
|
||||||
|
ep.Aliases = aliases
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}
|
}
|
||||||
|
|
|
@ -317,19 +317,20 @@ var _ = Describe("the client", func() {
|
||||||
})
|
})
|
||||||
Describe(`GetNetworkConfig`, func() {
|
Describe(`GetNetworkConfig`, func() {
|
||||||
When(`providing a container with network aliases`, func() {
|
When(`providing a container with network aliases`, func() {
|
||||||
It(`should purge the aliases`, func() {
|
It(`should omit the container ID alias`, func() {
|
||||||
aliases := []string{"One", "Two"}
|
|
||||||
client := dockerClient{
|
client := dockerClient{
|
||||||
api: docker,
|
api: docker,
|
||||||
ClientOptions: ClientOptions{PullImages: false, IncludeRestarting: false},
|
ClientOptions: ClientOptions{PullImages: false, IncludeRestarting: false},
|
||||||
}
|
}
|
||||||
container := MockContainer(WithImageName("docker.io/prefix/imagename:latest"))
|
container := MockContainer(WithImageName("docker.io/prefix/imagename:latest"))
|
||||||
|
|
||||||
|
aliases := []string{"One", "Two", container.ID().ShortID(), "Four"}
|
||||||
endpoints := map[string]*network.EndpointSettings{
|
endpoints := map[string]*network.EndpointSettings{
|
||||||
`test`: {Aliases: aliases},
|
`test`: {Aliases: aliases},
|
||||||
}
|
}
|
||||||
container.containerInfo.NetworkSettings = &types.NetworkSettings{Networks: endpoints}
|
container.containerInfo.NetworkSettings = &types.NetworkSettings{Networks: endpoints}
|
||||||
Expect(container.ContainerInfo().NetworkSettings.Networks[`test`].Aliases).To(Equal(aliases))
|
Expect(container.ContainerInfo().NetworkSettings.Networks[`test`].Aliases).To(Equal(aliases))
|
||||||
Expect(client.GetNetworkConfig(container).EndpointsConfig[`test`].Aliases).To(BeEmpty())
|
Expect(client.GetNetworkConfig(container).EndpointsConfig[`test`].Aliases).To(Equal([]string{"One", "Two", "Four"}))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue