Skip to content

Commit 1640010

Browse files
committed
cli/compose/loader: mergeServices: remove intermediate map for overrides
The code was using an intermediate map, indexed by name, for both the "base" services _and_ for overrides. This meant that multiple files containing an override for a service would be ignored. Remove the intermediate map for overrides, and apply all overrides for a service instead. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
1 parent 59f7cd6 commit 1640010

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

cli/compose/loader/merge.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,15 @@ func mergeServices(base, override []types.ServiceConfig) ([]types.ServiceConfig,
7171
}
7272

7373
baseServices := mapByName(base)
74-
for name, overrideService := range mapByName(override) {
75-
if baseService, ok := baseServices[name]; ok {
74+
for _, overrideService := range override {
75+
if baseService, ok := baseServices[overrideService.Name]; ok {
7676
if err := mergo.Merge(&baseService, &overrideService, mergeOpts...); err != nil {
77-
return base, fmt.Errorf("cannot merge service %s: %w", name, err)
77+
return base, fmt.Errorf("cannot merge service %s: %w", overrideService.Name, err)
7878
}
79-
baseServices[name] = baseService
79+
baseServices[overrideService.Name] = baseService
8080
continue
8181
}
82-
baseServices[name] = overrideService
82+
baseServices[overrideService.Name] = overrideService
8383
}
8484

8585
services := make([]types.ServiceConfig, 0, len(baseServices))

0 commit comments

Comments
 (0)