diff --git a/provider/label/label.go b/provider/label/label.go index c33228ffd..0dc5d5ed4 100644 --- a/provider/label/label.go +++ b/provider/label/label.go @@ -267,7 +267,7 @@ func ExtractServicePropertiesP(labels *map[string]string) ServiceProperties { // ParseErrorPages parse error pages to create ErrorPage struct func ParseErrorPages(labels map[string]string, labelPrefix string, labelRegex *regexp.Regexp) map[string]*types.ErrorPage { - errorPages := make(map[string]*types.ErrorPage) + var errorPages map[string]*types.ErrorPage for lblName, value := range labels { if strings.HasPrefix(lblName, labelPrefix) { @@ -277,6 +277,10 @@ func ParseErrorPages(labels map[string]string, labelPrefix string, labelRegex *r continue } + if errorPages == nil { + errorPages = make(map[string]*types.ErrorPage) + } + pageName := submatch[1] ep, ok := errorPages[pageName] diff --git a/provider/label/label_test.go b/provider/label/label_test.go index 83a8be3e3..7812023d2 100644 --- a/provider/label/label_test.go +++ b/provider/label/label_test.go @@ -1070,6 +1070,11 @@ func TestParseErrorPages(t *testing.T) { }, expected: map[string]*types.ErrorPage{"foo": {}}, }, + { + desc: "no error pages labels", + labels: map[string]string{}, + expected: nil, + }, } for _, test := range testCases {