Skip to content

Commit feb401c

Browse files
authored
Merge pull request #174 from ndeloof/x-services
2 parents e32f0b4 + 65dd424 commit feb401c

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

loader/loader.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ func loadSections(filename string, config map[string]interface{}, configDetails
258258
return nil, err
259259
}
260260

261-
cfg.Networks, err = LoadNetworks(getSection(config, "networks"), configDetails.Version)
261+
cfg.Networks, err = LoadNetworks(getSection(config, "networks"))
262262
if err != nil {
263263
return nil, err
264264
}
@@ -423,6 +423,14 @@ func formatInvalidKeyError(keyPrefix string, key interface{}) error {
423423
func LoadServices(filename string, servicesDict map[string]interface{}, workingDir string, lookupEnv template.Mapping, opts *Options) ([]types.ServiceConfig, error) {
424424
var services []types.ServiceConfig
425425

426+
x, ok := servicesDict["extensions"]
427+
if ok {
428+
// as a top-level attribute, "services" doesn't support extensions, and a service can be named `x-foo`
429+
for k, v := range x.(map[string]interface{}) {
430+
servicesDict[k] = v
431+
}
432+
}
433+
426434
for name := range servicesDict {
427435
serviceConfig, err := loadServiceWithExtends(filename, name, servicesDict, workingDir, lookupEnv, opts, &cycleTracker{})
428436
if err != nil {
@@ -617,7 +625,7 @@ func transformUlimits(data interface{}) (interface{}, error) {
617625

618626
// LoadNetworks produces a NetworkConfig map from a compose file Dict
619627
// the source Dict is not validated if directly used. Use Load() to enable validation
620-
func LoadNetworks(source map[string]interface{}, version string) (map[string]types.NetworkConfig, error) {
628+
func LoadNetworks(source map[string]interface{}) (map[string]types.NetworkConfig, error) {
621629
networks := make(map[string]types.NetworkConfig)
622630
err := Transform(source, &networks)
623631
if err != nil {

loader/loader_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,7 +1365,7 @@ func TestLoadNetworksWarnOnDeprecatedExternalNameVersion35(t *testing.T) {
13651365
},
13661366
},
13671367
}
1368-
networks, err := LoadNetworks(source, "3.5")
1368+
networks, err := LoadNetworks(source)
13691369
assert.NilError(t, err)
13701370
expected := map[string]types.NetworkConfig{
13711371
"foo": {
@@ -1389,7 +1389,7 @@ func TestLoadNetworksWarnOnDeprecatedExternalName(t *testing.T) {
13891389
},
13901390
},
13911391
}
1392-
networks, err := LoadNetworks(source, "3.4")
1392+
networks, err := LoadNetworks(source)
13931393
assert.NilError(t, err)
13941394
expected := map[string]types.NetworkConfig{
13951395
"foo": {

0 commit comments

Comments
 (0)