Skip to content

Commit

Permalink
Merge pull request #4647 from tonistiigi/sourceresolver-fallback
Browse files Browse the repository at this point in the history
add missing fallback from new frontend to daemon without sourceresolver
  • Loading branch information
tonistiigi committed Feb 14, 2024
2 parents 47d6583 + 0184fde commit f1bd3af
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 3 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# syntax=docker/dockerfile-upstream:master
# syntax=docker/dockerfile-upstream:master@sha256:cd94315a37d63ca11498df06c59883d86fa5b662b0fe5dfee7ad5b7086e95fdf

ARG RUNC_VERSION=v1.1.12
ARG CONTAINERD_VERSION=v1.7.11
Expand Down
2 changes: 1 addition & 1 deletion frontend/dockerfile/cmd/dockerfile-frontend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# syntax=docker/dockerfile-upstream:master
# syntax=docker/dockerfile-upstream:master@sha256:cd94315a37d63ca11498df06c59883d86fa5b662b0fe5dfee7ad5b7086e95fdf

ARG GO_VERSION=1.21

Expand Down
26 changes: 25 additions & 1 deletion frontend/gateway/grpcclient/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -484,7 +484,31 @@ func (c *grpcClient) Solve(ctx context.Context, creq client.SolveRequest) (res *

func (c *grpcClient) ResolveSourceMetadata(ctx context.Context, op *opspb.SourceOp, opt sourceresolver.Opt) (*sourceresolver.MetaResponse, error) {
if c.caps.Supports(pb.CapSourceMetaResolver) != nil {
return nil, errors.Errorf("fallback not implemented")
var ref string
if v, ok := strings.CutPrefix(op.Identifier, "docker-image://"); ok {
ref = v
} else if v, ok := strings.CutPrefix(op.Identifier, "oci-layout://"); ok {
ref = v
} else {
return &sourceresolver.MetaResponse{Op: op}, nil
}
retRef, dgst, config, err := c.ResolveImageConfig(ctx, ref, opt)
if err != nil {
return nil, err
}
if strings.HasPrefix(op.Identifier, "docker-image://") {
op.Identifier = "docker-image://" + retRef
} else if strings.HasPrefix(op.Identifier, "oci-layout://") {
op.Identifier = "oci-layout://" + retRef
}

return &sourceresolver.MetaResponse{
Op: op,
Image: &sourceresolver.ResolveImageResponse{
Digest: dgst,
Config: config,
},
}, nil
}

var p *opspb.Platform
Expand Down

0 comments on commit f1bd3af

Please sign in to comment.