diff --git a/api.go b/api.go index f984b1c49f..9bba627743 100644 --- a/api.go +++ b/api.go @@ -892,8 +892,7 @@ func postBuild(srv *Server, version float64, w http.ResponseWriter, r *http.Requ b := NewBuildFile(srv, utils.NewWriteFlusher(w), !suppressOutput, !noCache, rm) id, err := b.Build(context) if err != nil { - fmt.Fprintf(w, "Error build: %s\n", err) - return err + return fmt.Errorf("Error build: %s", err) } if repoName != "" { srv.runtime.repositories.Set(repoName, tag, id, false) diff --git a/runtime.go b/runtime.go index aff1773fdf..cb37a82304 100644 --- a/runtime.go +++ b/runtime.go @@ -282,7 +282,9 @@ func (runtime *Runtime) Create(config *Config) (*Container, error) { } if img.Config != nil { - MergeConfig(config, img.Config) + if err := MergeConfig(config, img.Config); err != nil { + return nil, err + } } if len(config.Entrypoint) != 0 && config.Cmd == nil { diff --git a/utils.go b/utils.go index aed8ffdd76..769f49919a 100644 --- a/utils.go +++ b/utils.go @@ -65,7 +65,7 @@ func CompareConfig(a, b *Config) bool { return true } -func MergeConfig(userConf, imageConf *Config) { +func MergeConfig(userConf, imageConf *Config) error { if userConf.User == "" { userConf.User = imageConf.User } @@ -85,7 +85,10 @@ func MergeConfig(userConf, imageConf *Config) { found := false imageNat, _ := parseNat(imagePortSpec) for _, userPortSpec := range userConf.PortSpecs { - userNat, _ := parseNat(userPortSpec) + userNat, err := parseNat(userPortSpec) + if err != nil { + return err + } if imageNat.Proto == userNat.Proto && imageNat.Backend == userNat.Backend { found = true } @@ -146,6 +149,7 @@ func MergeConfig(userConf, imageConf *Config) { userConf.Volumes[k] = v } } + return nil } func parseLxcConfOpts(opts ListOpts) ([]KeyValuePair, error) {