Print warning if container-diffs return errors to stderr

This commit is contained in:
Ettore Di Giacinto
2020-04-08 18:31:40 +02:00
parent 77ba4193aa
commit 0d2668e452

View File

@@ -16,6 +16,7 @@
package backend
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
@@ -241,13 +242,20 @@ func (*SimpleDocker) Changes(fromImage, toImage string) ([]compiler.ArtifactLaye
return []compiler.ArtifactLayer{}, errors.Wrap(err, "Error met while creating tempdir for rootfs")
}
defer os.RemoveAll(tmpdiffs) // clean up
var errorBuffer bytes.Buffer
diffargs := []string{"diff", fromImage, toImage, "-v", "error", "-q", "--type=file", "-j", "-n", "-c", tmpdiffs}
out, err := exec.Command("container-diff", diffargs...).Output()
cmd := exec.Command("container-diff", diffargs...)
cmd.Stderr = &errorBuffer
out, err := cmd.Output()
if err != nil {
return []compiler.ArtifactLayer{}, errors.Wrap(err, "Failed Resolving layer diffs: "+string(out))
}
if string(errorBuffer.Bytes()) != "" {
Warning("container-diff errored with: " + string(errorBuffer.Bytes()))
}
if config.LuetCfg.GetGeneral().ShowBuildOutput {
Info(string(out))
}