Skip to content

Commit 83c54ca

Browse files
authored
Merge pull request #205 from ndeloof/merge_environment
2 parents b6c7aa6 + f4b5799 commit 83c54ca

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

loader/merge.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@ func _merge(baseService *types.ServiceConfig, overrideService *types.ServiceConf
114114
if overrideService.Entrypoint != nil {
115115
baseService.Entrypoint = overrideService.Entrypoint
116116
}
117+
if baseService.Environment != nil {
118+
baseService.Environment.OverrideBy(overrideService.Environment)
119+
} else {
120+
baseService.Environment = overrideService.Environment
121+
}
117122
return baseService, nil
118123
}
119124

loader/merge_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1224,3 +1224,37 @@ func TestMergeCommands(t *testing.T) {
12241224
assert.NilError(t, err)
12251225
assert.DeepEqual(t, merged.Services[0].Command, types.ShellCommand{"/bin/ash", "-c", "echo 'world'"})
12261226
}
1227+
1228+
func TestMergeEnvironments(t *testing.T) {
1229+
configDetails := types.ConfigDetails{
1230+
ConfigFiles: []types.ConfigFile{
1231+
{Filename: "base.yml", Config: map[string]interface{}{
1232+
"services": map[string]interface{}{
1233+
"foo": map[string]interface{}{
1234+
"image": "alpine",
1235+
"environment": map[string]interface{}{
1236+
"NAME": "BASE",
1237+
"VALUE": "BASE",
1238+
},
1239+
},
1240+
},
1241+
}},
1242+
{Filename: "override.yml", Config: map[string]interface{}{
1243+
"services": map[string]interface{}{
1244+
"foo": map[string]interface{}{
1245+
"image": "alpine",
1246+
"environment": map[string]interface{}{
1247+
"NAME": "DEV",
1248+
"VALUE": nil,
1249+
},
1250+
},
1251+
},
1252+
}},
1253+
},
1254+
}
1255+
merged, err := loadTestProject(configDetails)
1256+
assert.NilError(t, err)
1257+
env := merged.Services[0].Environment
1258+
assert.Assert(t, *env["NAME"] == "DEV")
1259+
assert.Assert(t, env["VALUE"] == nil)
1260+
}

0 commit comments

Comments
 (0)