diff options
-rw-r--r-- | pkg/api/handlers/compat/images_build.go | 10 | ||||
-rw-r--r-- | test/system/050-stop.bats | 1 |
2 files changed, 7 insertions, 4 deletions
diff --git a/pkg/api/handlers/compat/images_build.go b/pkg/api/handlers/compat/images_build.go index 700881926..e0c79e5a7 100644 --- a/pkg/api/handlers/compat/images_build.go +++ b/pkg/api/handlers/compat/images_build.go @@ -462,12 +462,17 @@ func BuildImage(w http.ResponseWriter, r *http.Request) { buildOptions.Timestamp = &ts } + var ( + imageID string + failed bool + ) + runCtx, cancel := context.WithCancel(context.Background()) - var imageID string go func() { defer cancel() imageID, _, err = runtime.Build(r.Context(), buildOptions, query.Dockerfile) if err != nil { + failed = true stderr.Write([]byte(err.Error() + "\n")) } }() @@ -483,8 +488,6 @@ func BuildImage(w http.ResponseWriter, r *http.Request) { w.Header().Add("Content-Type", "application/json") flush() - var failed bool - body := w.(io.Writer) if logrus.IsLevelEnabled(logrus.DebugLevel) { if v, found := os.LookupEnv("PODMAN_RETAIN_BUILD_ARTIFACT"); found { @@ -525,7 +528,6 @@ loop: } flush() case e := <-stderr.Chan(): - failed = true m.Error = string(e) if err := enc.Encode(m); err != nil { logrus.Warnf("Failed to json encode error %v", err) diff --git a/test/system/050-stop.bats b/test/system/050-stop.bats index 0652a97e4..a9495e350 100644 --- a/test/system/050-stop.bats +++ b/test/system/050-stop.bats @@ -132,6 +132,7 @@ load helpers is "$output" "stopping" "Status of container should be 'stopping'" run_podman kill stopme + run_podman wait stopme # Exit code should be 137 as it was killed run_podman inspect --format '{{.State.ExitCode}}' stopme |