Merge pull request #32042 from vdemeester/compose-interpolate-error-instead-of-panic
[compose/interpolation] Make sure we error out instead of panic during interpolation
This commit is contained in:
commit
8d2a82853c
|
@ -1,9 +1,8 @@
|
|||
package interpolation
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/docker/docker/cli/compose/template"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// Interpolate replaces variables in a string with the values from a mapping
|
||||
|
@ -15,7 +14,11 @@ func Interpolate(config map[string]interface{}, section string, mapping template
|
|||
out[name] = nil
|
||||
continue
|
||||
}
|
||||
interpolatedItem, err := interpolateSectionItem(name, item.(map[string]interface{}), section, mapping)
|
||||
mapItem, ok := item.(map[string]interface{})
|
||||
if !ok {
|
||||
return nil, errors.Errorf("Invalid type for %s : %T instead of %T", name, item, out)
|
||||
}
|
||||
interpolatedItem, err := interpolateSectionItem(name, mapItem, section, mapping)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -37,7 +40,7 @@ func interpolateSectionItem(
|
|||
for key, value := range item {
|
||||
interpolatedValue, err := recursiveInterpolate(value, mapping)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf(
|
||||
return nil, errors.Errorf(
|
||||
"Invalid interpolation format for %#v option in %s %#v: %#v. You may need to escape any $ with another $.",
|
||||
key, section, name, err.Template,
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue