diff --git a/pkg/compose/create.go b/pkg/compose/create.go index 1bd57cf0e7a..ab43041ea2c 100644 --- a/pkg/compose/create.go +++ b/pkg/compose/create.go @@ -447,7 +447,7 @@ func (s *composeService) prepareLabels(p *types.Project, service types.ServiceCo func getDefaultNetworkMode(project *types.Project, service types.ServiceConfig) string { mode := "none" if len(project.Networks) > 0 { - for name := range getNetworksForService(service) { + for _, name := range service.NetworksByPriority() { mode = project.Networks[name].Name break } diff --git a/pkg/compose/create_test.go b/pkg/compose/create_test.go index 254e0b00412..d4eedc6a1f4 100644 --- a/pkg/compose/create_test.go +++ b/pkg/compose/create_test.go @@ -151,3 +151,33 @@ func TestGetBindMode(t *testing.T) { assert.Equal(t, getBindMode(&composetypes.ServiceVolumeBind{SELinux: composetypes.SELinuxShared}, true), "ro,z") assert.Equal(t, getBindMode(&composetypes.ServiceVolumeBind{SELinux: composetypes.SELinuxPrivate}, true), "ro,Z") } + +func TestGetDefaultNetworkMode(t *testing.T) { + service := composetypes.ServiceConfig{ + Name: "myService", + Networks: map[string]*composetypes.ServiceNetworkConfig{ + "myNetwork1": { + Priority: 10, + }, + "myNetwork2": { + Priority: 1000, + }, + }, + } + project := composetypes.Project{ + Name: "myProject", + Services: []composetypes.ServiceConfig{ + service, + }, + Networks: composetypes.Networks(map[string]composetypes.NetworkConfig{ + "myNetwork1": { + Name: "myProject_myNetwork1", + }, + "myNetwork2": { + Name: "myProject_myNetwork2", + }, + }), + } + + assert.Equal(t, getDefaultNetworkMode(&project, service), "myProject_myNetwork2") +}