daemon: only add short cid to aliases for custom networks
Prior to7a9b680a
, the container short ID was added to the network aliases only for custom networks. However, this logic wasn't preserved in6a2542d
and now the cid is always added to the list of network aliases. This commit reintroduces the old logic. Signed-off-by: Albin Kerouanton <albinker@gmail.com> (cherry picked from commit9f37672ca8
) Signed-off-by: Albin Kerouanton <albinker@gmail.com>
This commit is contained in:
parent
2672baefd7
commit
e8801fbe26
2 changed files with 37 additions and 2 deletions
|
@ -8,6 +8,7 @@ import (
|
|||
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/backend"
|
||||
containertypes "github.com/docker/docker/api/types/container"
|
||||
networktypes "github.com/docker/docker/api/types/network"
|
||||
"github.com/docker/docker/api/types/versions"
|
||||
"github.com/docker/docker/api/types/versions/v1p20"
|
||||
|
@ -36,8 +37,10 @@ func (daemon *Daemon) ContainerInspect(ctx context.Context, name string, size bo
|
|||
}
|
||||
|
||||
shortCID := stringid.TruncateID(ctr.ID)
|
||||
for _, ep := range ctr.NetworkSettings.Networks {
|
||||
ep.Aliases = sliceutil.Dedup(append(ep.Aliases, shortCID, ctr.Config.Hostname))
|
||||
for nwName, ep := range ctr.NetworkSettings.Networks {
|
||||
if containertypes.NetworkMode(nwName).IsUserDefined() {
|
||||
ep.Aliases = sliceutil.Dedup(append(ep.Aliases, shortCID, ctr.Config.Hostname))
|
||||
}
|
||||
}
|
||||
|
||||
return ctr, nil
|
||||
|
|
|
@ -2,10 +2,12 @@ package container // import "github.com/docker/docker/integration/container"
|
|||
|
||||
import (
|
||||
"encoding/json"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
containertypes "github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/client"
|
||||
"github.com/docker/docker/integration/internal/container"
|
||||
"github.com/docker/docker/testutil/request"
|
||||
|
@ -68,3 +70,33 @@ func TestInspectAnnotations(t *testing.T) {
|
|||
assert.NilError(t, err)
|
||||
assert.Check(t, is.DeepEqual(inspect.HostConfig.Annotations, annotations))
|
||||
}
|
||||
|
||||
// TestNetworkAliasesAreEmpty verifies that network-scoped aliases are not set
|
||||
// for non-custom networks (network-scoped aliases are only supported for
|
||||
// custom networks, except for the "Default Switch" network on Windows).
|
||||
func TestNetworkAliasesAreEmpty(t *testing.T) {
|
||||
ctx := setupTest(t)
|
||||
apiClient := request.NewAPIClient(t)
|
||||
|
||||
netModes := []string{"host", "bridge", "none"}
|
||||
if runtime.GOOS == "windows" {
|
||||
netModes = []string{"nat", "none"}
|
||||
}
|
||||
|
||||
for _, nwMode := range netModes {
|
||||
t.Run(nwMode, func(t *testing.T) {
|
||||
ctr := container.Create(ctx, t, apiClient,
|
||||
container.WithName("ctr-"+nwMode),
|
||||
container.WithImage("busybox:latest"),
|
||||
container.WithNetworkMode(nwMode))
|
||||
defer apiClient.ContainerRemove(ctx, ctr, containertypes.RemoveOptions{
|
||||
Force: true,
|
||||
})
|
||||
|
||||
inspect := container.Inspect(ctx, t, apiClient, ctr)
|
||||
netAliases := inspect.NetworkSettings.Networks[nwMode].Aliases
|
||||
|
||||
assert.Check(t, is.Nil(netAliases))
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue