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>
This commit is contained in:
parent
12c7411b6b
commit
9f37672ca8
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