Skip to content

Commit e6bb854

Browse files
authored
Merge pull request #171 from compose-spec/fix-port-merging-on-partial-reference
2 parents 224b85b + c77575c commit e6bb854

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

loader/merge.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,11 @@ func toServicePortConfigsMap(s interface{}) (map[interface{}]interface{}, error)
148148
}
149149
m := map[interface{}]interface{}{}
150150
for _, p := range ports {
151-
m[p.Published] = p
151+
k := p.Published
152+
if k == 0 {
153+
k = p.Target
154+
}
155+
m[k] = p
152156
}
153157
return m, nil
154158
}

loader/merge_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,30 @@ func TestLoadMultipleServicePorts(t *testing.T) {
306306
},
307307
},
308308
},
309+
{
310+
name: "override_one_sided",
311+
portBase: map[string]interface{}{
312+
"ports": []interface{}{
313+
"5000",
314+
"6000",
315+
},
316+
},
317+
portOverride: map[string]interface{}{},
318+
expected: []types.ServicePortConfig{
319+
{
320+
Mode: "ingress",
321+
Published: 0,
322+
Target: 5000,
323+
Protocol: "tcp",
324+
},
325+
{
326+
Mode: "ingress",
327+
Published: 0,
328+
Target: 6000,
329+
Protocol: "tcp",
330+
},
331+
},
332+
},
309333
}
310334

311335
for _, tc := range portsCases {

0 commit comments

Comments
 (0)