diff --git a/exporter/containerimage/writer.go b/exporter/containerimage/writer.go index 2c121ea99b33..ba9a2eab8e5c 100644 --- a/exporter/containerimage/writer.go +++ b/exporter/containerimage/writer.go @@ -393,14 +393,13 @@ func patchImageConfig(dt []byte, descs []ocispecs.Descriptor, history []ocispecs m["moby.buildkit.cache.v0"] = dt } - // TODO: patch build info - //if buildInfo != nil { - // dt, err := json.Marshal(buildInfo) - // if err != nil { - // return nil, err - // } - // m["moby.buildkit.buildinfo.v0"] = dt - //} + if buildInfo != nil { + dt, err := json.Marshal(buildInfo) + if err != nil { + return nil, err + } + m["moby.buildkit.buildinfo.v0"] = dt + } dt, err = json.Marshal(m) return dt, errors.Wrap(err, "failed to marshal config after patch") diff --git a/solver/llbsolver/solver.go b/solver/llbsolver/solver.go index 69bc3d977499..42505e86789e 100644 --- a/solver/llbsolver/solver.go +++ b/solver/llbsolver/solver.go @@ -5,6 +5,7 @@ import ( "encoding/base64" "encoding/json" "fmt" + "sort" "strings" "time" @@ -363,6 +364,9 @@ func patchBuildInfo(ctx context.Context, res solver.ResultProxy, dtic []byte) ([ for _, bi := range mbis { bis = append(bis, bi) } + sort.Slice(bis, func(i, j int) bool { + return bis[i].Ref < bis[j].Ref + }) return json.Marshal(map[string][]exptypes.BuildInfo{ "sources": bis,