op: push-container stores metadata on fs, under /dagger/
Signed-off-by: Sam Alba <sam.alba@gmail.com>
This commit is contained in:
parent
8f844366d2
commit
6818659c14
@ -627,7 +627,7 @@ func (p *Pipeline) PushContainer(ctx context.Context, op *compiler.Value, st llb
|
|||||||
// Add the default tag "latest" to a reference if it only has a repo name.
|
// Add the default tag "latest" to a reference if it only has a repo name.
|
||||||
ref = reference.TagNameOnly(ref)
|
ref = reference.TagNameOnly(ref)
|
||||||
|
|
||||||
_, err = p.s.Export(ctx, p.State(), &p.image, bk.ExportEntry{
|
resp, err := p.s.Export(ctx, p.State(), &p.image, bk.ExportEntry{
|
||||||
Type: bk.ExporterImage,
|
Type: bk.ExporterImage,
|
||||||
Attrs: map[string]string{
|
Attrs: map[string]string{
|
||||||
"name": ref.String(),
|
"name": ref.String(),
|
||||||
@ -635,6 +635,29 @@ func (p *Pipeline) PushContainer(ctx context.Context, op *compiler.Value, st llb
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return st, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if digest, ok := resp.ExporterResponse["containerimage.digest"]; ok {
|
||||||
|
imageRef := fmt.Sprintf(
|
||||||
|
"%s@%s",
|
||||||
|
resp.ExporterResponse["image.name"],
|
||||||
|
digest,
|
||||||
|
)
|
||||||
|
|
||||||
|
return st.File(
|
||||||
|
llb.Mkdir("/dagger", fs.FileMode(0755)),
|
||||||
|
llb.WithCustomName(p.vertexNamef("Mkdir /dagger")),
|
||||||
|
).File(
|
||||||
|
llb.Mkfile("/dagger/image_digest", fs.FileMode(0644), []byte(digest)),
|
||||||
|
llb.WithCustomName(p.vertexNamef("Storing image digest to /dagger/image_digest")),
|
||||||
|
).File(
|
||||||
|
llb.Mkfile("/dagger/image_ref", fs.FileMode(0644), []byte(imageRef)),
|
||||||
|
llb.WithCustomName(p.vertexNamef("Storing image ref to /dagger/image_ref")),
|
||||||
|
), nil
|
||||||
|
}
|
||||||
|
|
||||||
return st, err
|
return st, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user